ฉันเห็นว่า Kotlin มีByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayซึ่งเทียบเท่ากับbyte[], short[], int[],char[], double[], float[]ใน Java
ตอนนี้ฉันสงสัยว่ามีอะไรStringArrayเทียบเท่ากับ Java String[]หรือไม่
ฉันเห็นว่า Kotlin มีByteArray, ShortArray, IntArray, CharArray, DoubleArray, FloatArrayซึ่งเทียบเท่ากับbyte[], short[], int[],char[], double[], float[]ใน Java
ตอนนี้ฉันสงสัยว่ามีอะไรStringArrayเทียบเท่ากับ Java String[]หรือไม่
คำตอบ:
ไม่มีกรณีพิเศษสำหรับเป็นStringเพราะStringเป็นประเภทสามัญอ้างอิง JVM ในทางตรงกันข้ามกับพื้นฐาน Java ( int, double, ... ) - เก็บไว้ในการอ้างอิงArray<T>ต้องมวยพวกเขาเป็นวัตถุเช่นIntegerDoubleและ วัตถุประสงค์ของอาร์เรย์พิเศษเช่นIntArrayใน Kotlin คือการจัดเก็บแบบดั้งเดิมที่ไม่มีกล่องการกำจัดของมวยและค่าใช้จ่าย unboxing (เช่นเดียวกับ Java int[]แทนInteger[])
คุณสามารถใช้Array<String>(และArray<String?>สำหรับ nullables) ซึ่งเทียบเท่ากับString[]ใน Java:
val stringsOrNulls = arrayOfNulls<String>(10) // returns Array<String?>
val someStrings = Array<String>(5) { "it = $it" }
val otherStrings = arrayOf("a", "b", "c")
ดูเพิ่มเติม: อาร์เรย์ในการอ้างอิงภาษา
ใช้ arrayOf , arrayOfNulls , emptyArray
var colors_1: Array<String> = arrayOf("green", "red", "blue")
var colors_2: Array<String?> = arrayOfNulls(3)
var colors_3: Array<String> = emptyArray()
Array of Stringsใน Kotlin คุณควรใช้หนึ่งในหกวิธีต่อไปนี้:วิธีแรก:
val empty = arrayOf<String>()
วิธีที่สอง:
val empty = arrayOf("","","")
แนวทางที่สาม:
val empty = Array<String?>(3) { null }
วิธีที่สี่:
val empty = arrayOfNulls<String>(3)
แนวทางที่ห้า:
val empty = Array<String>(3) { "it = $it" }
แนวทางที่หก:
val empty = Array<String>(0, { _ -> "" })
มีชนิดเหล่านั้นอยู่ที่นั่นเพื่อให้คุณสามารถสร้างอาร์เรย์ของดั้งเดิมได้และไม่ใช่ชนิดที่บรรจุอยู่ เนื่องจาก String ไม่ใช่ดั้งเดิมใน Java คุณสามารถใช้Array<String>ใน Kotlin แทน Java String[]ได้
สำหรับStringsและประเภทอื่น ๆ Array<*>ที่คุณเพียงแค่ใช้ เหตุผลIntArrayและอื่น ๆ ที่มีอยู่คือการป้องกันการ autobox
ดังนั้นint[]ที่เกี่ยวข้องกับการIntArrayที่เกี่ยวข้องกับInteger[]Array<Int>
วิธีการทั่วไปบางอย่างในการสร้างอาร์เรย์สตริงคือ
สิ่งนี้จะสร้างอาร์เรย์ของ 5 สตริงโดยมีค่าเริ่มต้นเป็นสตริงว่าง
<String?>(5)สิ่งนี้จะสร้างอาร์เรย์ขนาด 5 ที่มีค่าเริ่มต้นเป็นโมฆะ คุณสามารถใช้ข้อมูล String เพื่อแก้ไขอาเรย์
เมื่อคุณรู้เนื้อหาของอาเรย์แล้วคุณสามารถเริ่มต้นอาร์เรย์ได้โดยตรง
มีวิธีที่ง่ายในการสร้างสตริงหลายมิติเช่นกัน
var matrix = Array (5) {Array (6) {""}}
นี่คือวิธีที่คุณสามารถสร้างเมทริกซ์ที่มี 5 แถวและ 6 คอลัมน์ด้วยค่าเริ่มต้นของสตริงที่ว่างเปล่า
ตัวอย่างนี้ทำงานได้อย่างสมบูรณ์ใน Android
ใน kotlin คุณสามารถใช้แลมบ์ดานิพจน์ได้ นิยามตัวสร้าง Kotlin Array Constructor คือ:
Array(size: Int, init: (Int) -> T)
ซึ่งประเมินว่า:
skillsSummaryDetailLinesArray = Array(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
หรือ:
skillsSummaryDetailLinesArray = Array<String>(linesLen) {
i: Int -> skillsSummaryDetailLines!!.getString(i)
}
ในตัวอย่างนี้นิยามของฟิลด์คือ:
private var skillsSummaryDetailLinesArray: Array<String>? = null
หวังว่านี่จะช่วยได้
คุณสามารถใช้:
val frases = arrayOf("texto01","texto02 ","anotherText","and ")
ตัวอย่างเช่น.
typealias StringArray = Array<String>;)