คำถามติดแท็ก kotlin

Kotlin เป็นภาษาการเขียนโปรแกรมแบบโอเพนซอร์ซที่ได้รับการสนับสนุนจาก JetBrains Kotlin ผสมผสานคุณสมบัติ OOP และคุณสมบัติการใช้งานและมุ่งเน้นไปที่การทำงานร่วมกันความปลอดภัยความคมชัดและการรองรับเครื่องมือ ปัจจุบันกำหนดเป้าหมายไปที่ JVM และ JavaScript และเป็นภาษาที่ได้รับการสนับสนุนอย่างเป็นทางการบน Android

2
ฉันจะจัดการทรัพยากรการทดสอบหน่วยใน Kotlin ได้อย่างไรเช่นเริ่ม / หยุดการเชื่อมต่อฐานข้อมูลหรือเซิร์ฟเวอร์ elasticsearch ในตัว
ในการทดสอบ Kotlin JUnit ของฉันฉันต้องการเริ่ม / หยุดเซิร์ฟเวอร์แบบฝังและใช้ในการทดสอบของฉัน ฉันลองใช้@BeforeคำอธิบายประกอบJUnit กับเมธอดในคลาสทดสอบของฉันและมันก็ใช้ได้ดี แต่มันไม่ใช่พฤติกรรมที่ถูกต้องเนื่องจากมันรันทุกกรณีทดสอบแทนที่จะใช้เพียงครั้งเดียว ดังนั้นฉันจึงต้องการใช้@BeforeClassคำอธิบายประกอบในวิธีการ แต่การเพิ่มลงในวิธีการทำให้เกิดข้อผิดพลาดว่าต้องเป็นวิธีการคงที่ Kotlin ดูเหมือนจะไม่มีวิธีการคงที่ จากนั้นก็ใช้กับตัวแปรคงที่เช่นเดียวกันเพราะฉันต้องเก็บข้อมูลอ้างอิงไปยังเซิร์ฟเวอร์ฝังตัวเพื่อใช้ในกรณีทดสอบ ดังนั้นฉันจะสร้างฐานข้อมูลแบบฝังนี้เพียงครั้งเดียวสำหรับกรณีทดสอบทั้งหมดของฉันได้อย่างไร class MyTest { @Before fun setup() { // works in that it opens the database connection, but is wrong // since this is per test case instead of being shared for all } @BeforeClass fun …

5
เวอร์ชัน kotlin ที่ใช้สำหรับการสร้างด้วย gradle (1.1.2-5) แตกต่างจากเวอร์ชันที่รวมอยู่ในปลั๊กอิน IDE (1.1.2-4)
มีใครแก้ปัญหานี้ได้บ้าง? เวอร์ชัน kotlin ที่ใช้สำหรับการสร้างด้วย gradle (1.1.2-5) แตกต่างจากเวอร์ชันที่รวมอยู่ในปลั๊กอิน IDE (1.1.2-4) ฉันใช้ AS 3.0 Canary 4

11
ทดสอบข้อยกเว้นที่คาดไว้ใน Kotlin
ใน Java โปรแกรมเมอร์สามารถระบุข้อยกเว้นที่คาดไว้สำหรับกรณีทดสอบ JUnit เช่นนี้: @Test(expected = ArithmeticException.class) public void omg() { int blackHole = 1 / 0; } ฉันจะทำสิ่งนี้ใน Kotlin ได้อย่างไร ฉันได้ลองใช้รูปแบบไวยากรณ์สองรูปแบบแล้ว แต่ไม่ได้ผล: import org.junit.Test // ... @Test(expected = ArithmeticException) fun omg() Please specify constructor invocation; classifier 'ArithmeticException' does not have a companion object @Test(expected = ArithmeticException.class) fun omg() …


5
Kotlin Backing Field สำหรับอะไร?
ในฐานะนักพัฒนา Java แนวคิดของเขตข้อมูลสำรองค่อนข้างแปลกสำหรับฉัน ให้: class Sample { var counter = 0 // the initializer value is written directly to the backing field set(value) { if (value >= 0) field = value } } สนามสำรองนี้เหมาะสำหรับอะไร? Kotlin เอกสารกล่าวว่า: ชั้นเรียนใน Kotlin ไม่สามารถมีเขตข้อมูลได้ แต่บางครั้งก็มีความจำเป็นต้องมีข้อมูลสนับสนุนเมื่อใช้ accessors ทำไม? อะไรคือความแตกต่างกับการใช้ชื่อคุณสมบัติภายในตัวเซ็ตเตอร์เช่น * class Sample { var counter = …

20
การอ้างอิงที่ไม่ได้รับการแก้ไขของ Kotlin ใน IntelliJ
ฉันเริ่มต้นด้วยบทช่วยสอนสำหรับการเรียนรู้ Kotlin ในIntelliJเมื่อฉันลองเรียกใช้ตัวอย่างเช่น fun main(args: Array<String>) { println("lol") } การดำเนินการถูกระงับด้วยข้อความError:(5, 5) Kotlin: Unresolved reference: println นี้นี่เป็นครั้งแรกที่ฉันใช้ IntelliJ ฉันไม่เคยทำงานในJavaโปรเจ็กต์ด้วยฉันขาดอะไรไปหรือเปล่า? แก้ไข: ฉันเห็นคำถามอื่นแล้วคำตอบไม่ถูกต้องสำหรับสถานการณ์ของฉัน

7
จะสร้างอาร์เรย์ว่างใน kotlin ได้อย่างไร?
ฉันกำลังใช้งานArray(0, {i -> ""})อยู่และอยากทราบว่ามีการใช้งานที่ดีกว่านี้หรือไม่เช่นArray() นอกจากนี้หากฉันใช้arrayOfNulls<String>(0) as Array<String>คอมไพเลอร์จะแจ้งเตือนฉันว่าการแคสต์นี้ไม่มีวันสำเร็จ Array(0, {i -> ""})แต่มันเป็นเรื่องภายในเริ่มต้นใช้งาน ฉันคิดถึงอะไร?
93 arrays  kotlin 

9
ทำไมปลั๊กอิน kotlin gradle ไม่สามารถสร้างด้วย 1.8 เป้าหมาย
ฉันมีโครงการ gradle ที่ง่ายที่สุดที่กำหนดค่าโดยใช้ intellij สำหรับ kotlin 1.2.10 นี่คือไฟล์ build.gradle ของฉัน: buildscript { ext.kotlin_version = '1.2.10' repositories { mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } group 'com.ali' version '1.0-SNAPSHOT' apply plugin: 'java' apply plugin: 'kotlin' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" testCompile group: 'junit', name: …

3
Kotlin: withContext () เทียบกับ Async-await
ฉันอ่านเอกสาร kotlinแล้วและถ้าฉันเข้าใจอย่างถูกต้องฟังก์ชัน Kotlin ทั้งสองจะทำงานดังนี้: withContext(context): สลับบริบทของโครูทีนปัจจุบันเมื่อบล็อกที่กำหนดดำเนินการโครูทีนจะสลับกลับไปยังบริบทก่อนหน้า async(context): เริ่มโครูทีนใหม่ในบริบทที่กำหนดและหากเราเรียก.await()ใช้Deferredงานที่ส่งคืนมันจะระงับการเรียกโครูทีนและกลับมาทำงานต่อเมื่อบล็อกที่ดำเนินการภายในโครูทีนที่ถูกสร้างจะส่งกลับ ตอนนี้สำหรับสองเวอร์ชันต่อไปนี้code: เวอร์ชัน 1: launch(){ block1() val returned = async(context){ block2() }.await() block3() } เวอร์ชัน 2: launch(){ block1() val returned = withContext(context){ block2() } block3() } ในทั้งสองเวอร์ชัน block1 (), block3 () ดำเนินการในบริบทเริ่มต้น (commonpool?) โดยที่ block2 () ดำเนินการในบริบทที่กำหนด การดำเนินการโดยรวมเป็นแบบซิงโครนัสกับคำสั่ง block1 () -> block2 () …


14
ListAdapter ไม่อัปเดตรายการใน RecyclerView
ListAdapterฉันใช้ห้องสมุดการสนับสนุนใหม่ นี่คือรหัสของฉันสำหรับอะแดปเตอร์ class ArtistsAdapter : ListAdapter<Artist, ArtistsAdapter.ViewHolder>(ArtistsDiff()) { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { return ViewHolder(parent.inflate(R.layout.item_artist)) } override fun onBindViewHolder(holder: ViewHolder, position: Int) { holder.bind(getItem(position)) } class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { fun bind(artist: Artist) { itemView.artistDetails.text = artist.artistAlbums .plus(" Albums") .plus(" \u2022 ") .plus(artist.artistTracks) .plus(" Tracks") itemView.artistName.text …

30
ไม่พบสัญลักษณ์ DataBindingComponent ในโครงการ Android Studio 3.2 Canary 16 Kotlin
ฉันเพิ่งสร้างโปรเจ็กต์ใหม่บน Android Studio 3.2 Canary 16 โดยเปิดใช้งาน Kotlin จากนั้นฉันก็เปิดใช้งานการผูกข้อมูลด้วย แต่ฉันได้รับข้อผิดพลาดที่แจ้งว่าไม่พบคลาส DataBindingComponent นี่คือผู้เริ่มโครงการของฉัน: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.kotlin_version = '1.2.41' ext.android_plugin_version = '3.2.0-alpha10' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0-alpha16' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place …

3
IntArray กับ Array <Int> ใน Kotlin
ฉันไม่แน่ใจว่าความแตกต่างระหว่าง an IntArrayและ an Array&lt;Int&gt;ใน Kotlin คืออะไรและทำไมฉันถึงไม่สามารถใช้แทนกันได้: ฉันรู้ว่าIntArrayแปลว่าint[]เมื่อกำหนดเป้าหมายJVMแต่Array&lt;Int&gt;แปลว่าอะไร นอกจากนี้คุณยังสามารถมีหรือString[] YourObject[]เหตุใด Kotlin จึงมีคลาสประเภทนี้{primitive}Arrayเมื่อสามารถจัดเรียงอะไรก็ได้ในอาร์เรย์ไม่เพียง
91 kotlin 

8
Kotlin - วิธีการต่อสตริงอย่างถูกต้อง
คำถามพื้นฐานมากวิธีที่ถูกต้องในการเชื่อมสตริงใน Kotlin คืออะไร? ใน Java คุณจะใช้concat()วิธีการเช่น String a = "Hello "; String b = a.concat("World"); // b = Hello World concat()ฟังก์ชั่นไม่สามารถใช้ได้สำหรับ Kotlin แม้ว่า ฉันควรใช้+เครื่องหมาย?
90 string  kotlin 


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.