ภาพรวม
ใน Java ใช้ String[] สำหรับ Array ของ String ใน Kotlin ไม่มี Syntax แบบ `Type[]` แต่ใช้ Generic Class Array<T> และฟังก์ชันช่วยสร้าง
การสร้าง String Array ใน Kotlin
1. arrayOf() - สร้างพร้อมค่าเริ่มต้น
fun main() {
val strings = arrayOf("Apple", "Banana", "Cherry")
// Type Inference: Array
val explicit: Array = arrayOf("A", "B") // ระบุ Type ชัดเจน
}
2. arrayOfNulls() - สร้าง Array ขนาดคงที่ เต็ม null
fun main() {
// ต้องเป็น Nullable Type: Array
val nullableArray: Array = arrayOfNulls(3)
// [null, null, null]
nullableArray[0] = "First"
// [First, null, null]
}
3. Array Constructor - สร้างด้วย Lambda
fun main() {
// Array ขนาด 5 ค่า = "Item {index}"
val items = Array(5) { index -> "Item $index" }
// [Item 0, Item 1, Item 2, Item 3, Item 4]
}
4. emptyArray() - Array ว่าง
fun main() {
val empty: Array = emptyArray()
// size = 0
}
Java String[] vs Kotlin Array
| Java | Kotlin | หมายเหตุ |
|---|---|---|
String[] arr = new String[5]; | val arr = Array(5) { null } (ต้องเป็น Array) | Kotlin Array ไม่มีค่า Default ต้องระบุ |
String[] arr = {"A", "B"}; | val arr = arrayOf("A", "B") | |
arr.length | arr.size | Property แทน Field |
arr[0] | arr[0] | Operator Overloading (get/set) |
Varargs: void foo(String... args) | fun foo(vararg args: String) | Varargs ใน Kotlin |
Main Function Parameter
// Java
public static void main(String[] args)
// Kotlin
fun main(args: Array) { ... }
// หรือสั้นๆ (args ถูกสร้างอัตโนมัติถ้าจำเป็น)
fun main() { ... }
Primitive Array vs Object Array
// Java: int[] -> Kotlin: IntArray (Primitive, ไม่ใช่ Generic)
val intArray = intArrayOf(1, 2, 3) // IntArray
val intArray2 = IntArray(5) { it * 2 }
// Java: String[] -> Kotlin: Array (Object, Generic)
val strArray = arrayOf("A", "B") // Array
การแปลงระหว่าง Java และ Kotlin
- Kotlin
Array→ JavaString[](Automatic) - Java
String[]→ KotlinArray(Automatic) - ใช้
@JvmField/@JvmStaticหากต้องการควบคุม Bytecode ให้แม่นยำ
สรุป
Java String[] ↔ Kotlin Array
สร้างด้วย: arrayOf(), Array(size) { init }, arrayOfNulls(), emptyArray()