在 Kotlin 中用值初始化陣列

Kailash Vaviya 2023年1月30日
  1. 在 Kotlin 中宣告一個陣列
  2. 在 Kotlin 中使用 arrayOf() 函式宣告和初始化陣列
  3. 在 Kotlin 中使用 Array Constructor 宣告和初始化一個陣列
  4. 在 Kotlin 中使用 Primitive Types 宣告和初始化陣列值
  5. 在 Kotlin 中使用 arrayOfNulls() 函式宣告和初始化陣列
  6. 在 Kotlin 中使用 fill() 函式宣告和初始化陣列
  7. 範圍中宣告和初始化 Kotlin 中的陣列值
在 Kotlin 中用值初始化陣列

本教程將教我們在 Kotlin 中使用值初始化一個陣列。

使用不同的方法,例如 arrayOf()array constructorprimitive typesarrayOfNulls()fill() 以及從 range

在 Kotlin 中宣告一個陣列

陣列將多個專案儲存在一起,以便在元素集合中輕鬆排序和搜尋。

儲存在 Kotlin 陣列中的所有專案都稱為元素,可以藉助從 0 開始的索引號來訪問它們。

在 Kotlin 中宣告一個陣列有兩種方式:

  • 使用 arrayOf() 函式和陣列建構函式。
  • 在宣告陣列時用 values 初始化陣列。

在 Kotlin 中使用 arrayOf() 函式宣告和初始化陣列

藉助庫函式 arrayOf() 建立一個陣列,並使用我們想要的任何值對其進行初始化。

有兩種方法可以做到這一點:implicitexplicit 型別。

我們可以使用 arrayOf() 函式並開始初始化 implicit 宣告值。但是對於 explicit 宣告,我們可以通過顯式宣告資料型別來控制陣列中的輸入。

在下面的示例中,我們將使用 implicit 宣告建立一個陣列 Student,並使用 students' names 對其進行初始化。

fun main() {
    val Student = arrayOf("Mark", "Anthony", 3, true)
    println (Student.contentToString())
}

輸出:

[Mark, Anthony, 3, true]

implicit 宣告接受任何資料型別並在編譯時將其轉換為 String。但是如果我們使用 explicit 宣告,程式將只接受 String 併為任何其他資料型別丟擲錯誤。

fun main() {
    val Student = arrayOf<String>("Mark", "Anthony", 3, true)
    println (Student.contentToString())
}

輸出:

! The integer literal does not conform to the expected type String
! The boolean literal does not conform to the expected type String

但是,僅使用 String 值初始化陣列將按預期執行。

在 Kotlin 中使用 Array Constructor 宣告和初始化一個陣列

它需要兩個引數:sizefunction 來計算值。

語法:

val array_name = Array (size, {value_function})

使用這種語法,我們將在 Kotlin 中建立並初始化一個陣列。

fun main()
{
    val array_example = Array(3, { n -> n * 1 + 3 })
    for (n in 0..array_example.size-1)
    {
        println(array_example[n])
    }
}

輸出:

3 4 5

我們也可以用單個值或 it 替換該函式。如果我們用單個值替換它,則陣列將在所有索引中初始化。

另一方面,如果我們使用 it,我們將使用相應的索引初始化陣列。it 關鍵字是指專案的索引。

因此,我們也可以通過使用 it 關鍵字來消除上述程式碼中的 for

fun main()
{
    val array_example = Array(3, { it -> it * 1 + 3 })
		println(array_example.contentToString())
}

輸出:

[3, 4, 5]

在 Kotlin 中使用 Primitive Types 宣告和初始化陣列值

Kotlin 允許使用函式 intArrayOf()charArrayOf()doubleArrayOf()booleanArrayOf()longArrayOf()shortArrayOf()byteArrayOf() 建立原始型別陣列

編譯使用這些函式建立的陣列將反映為 int[]char[] 等。

fun main()
{
    val arr = charArrayOf('a', 'b', 'c', 'd')
    print(arr)
}

輸出:

abcd

在 Kotlin 中使用 arrayOfNulls() 函式宣告和初始化陣列

arrayofNulls() 函式將宣告提到的大小和型別陣列,並用 null 值填充它。

我們將使用 arrayofNulls() 函式在下面的程式碼中建立一個大小為 3 和 null 值的陣列。

fun main() {
    val array_example = arrayOfNulls<String>(3)
    println(array_example.contentToString())
}

輸出:

[null, null, null]

同樣,我們可以使用 emptyArray() 函式建立一個空陣列。我們不需要為 emptyArray() 函式提供任何引數,因為它只會建立一個沒有任何資料的空陣列。

在 Kotlin 中使用 fill() 函式宣告和初始化陣列

fill() 函式將使用給定值初始化 Kotlin 中的陣列。但是,這需要宣告變數來儲存 size 和 items 的值,以便稍後初始化陣列。

fun main() {
    val s = 3
    val v = 5

    val array_example = arrayOfNulls<Int>(s)
    array_example.fill(v)

    println(array_example.contentToString())
}

輸出:

[5, 5, 5]

範圍中宣告和初始化 Kotlin 中的陣列值

我們需要使用 toList() 函式將範圍轉換為列表,並將給定範圍內的各個值新增到陣列中。但要使其工作,我們需要匯入 Java Array 包。

import java.util.Arrays
fun main() {
    val array_example = (4..9).toList().toTypedArray()
    println(Arrays.toString(array_example))
}

輸出:

[4, 5, 6, 7, 8, 9]
作者: Kailash Vaviya
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn