Kotlin中的基本類型(二)

1.數組類型

Kotlin 中的數組經過 Array 類表達, 這個類擁有 get 和 set 函數(這些函數經過運算符重載轉換爲 [] 運算符), 此外還有 size 屬性, 以及其餘一些有用的成員函數:java

public class Array<T> { 
 
   
    /** * Creates a new array with the specified [size], where each element is calculated by calling the specified * [init] function. The [init] function returns an array element given its index. */
    public inline constructor(size: Int, init: (Int) -> T)

    /** * Returns the array element at the specified [index]. This method can be called using the * index operator: * ``` * value = arr[index] * ``` */
    public operator fun get(index: Int): T

    /** * Sets the array element at the specified [index] to the specified [value]. This method can * be called using the index operator: * ``` * arr[index] = value * ``` */
    public operator fun set(index: Int, value: T): Unit

    /** * Returns the number of elements in the array. */
    public val size: Int

    /** * Creates an iterator for iterating over the elements of the array. */
    public operator fun iterator(): Iterator<T>
}

arrayOf()

要建立一個數組, 可使用庫函數 arrayOf(), 並向這個函數傳遞一些參數來指定數組元素的值, 這個函數的簽名以下:web

public inline fun <reified @PureReifiable T> arrayOf(vararg elements: T): Array<T>

其中,vararg表示是一個參數個數是一個變量。如:arrayOf(1, 2, 3) 建立數組, 其中的元素爲 [1, 2, 3]。數組

不一樣類型的元素

Kotlin還容許不一樣類型元素放到一個數組中,如:svg

val mArray = arrayOf(0, "秦川小將", true, 1.0, 100.0f)
mArray.forEach {
    println(it)
}

打印輸出:函數

0
秦川小將
true
1.0
100.0 spa

庫函數arrayOfNulls()

使用庫函數 arrayOfNulls() 建立一個指定長度的數組, 其中的元素所有爲 null 值。.net

val mArray = arrayOfNulls<Any>(5) mArray.forEach { println(it) }

打印輸出:scala

null
null
null
null
null code

數組Array類constructor(size: Int, init: (Int) -> T)構造函數:

第一個參數是數組大小,第一個參數是一個初始化函數類型的參數。xml

val mArray = Array(5, { i -> (i * i) })
mArray.forEach { println(it) }

打印輸出:

0
1
4
9
16

[] 運算符表明調用成員函數 get() 和 set()

val mArray = Array(5, { i -> (i * i) })
mArray[2] = 100
mArray.forEach { println(it) }

打印輸出:

0
1
100
9
16

注意: 與 Java 不一樣, Kotlin 中數組的類型是不可變的. 因此 Kotlin 不容許將一個 Array 賦值給一個 Array, 不然可能會致使運行時錯誤。

原生數組類型

Kotlin 也有無裝箱開銷的專門的類來表示原生類型數組。這些原生數組類以下:

  • BooleanArray
  • ByteArray
  • CharArray
  • ShortArray
  • IntArray
  • LongArray
  • FloatArray
  • DoubleArray
  • BooleanArray

這些類和 Array 並無繼承關係,但它們有一樣的函數和屬性集。它們也都有相應的工廠方法:

/** * Returns an array containing the specified [Double] numbers. */
public fun doubleArrayOf(vararg elements: Double): DoubleArray

/** * Returns an array containing the specified [Float] numbers. */
public fun floatArrayOf(vararg elements: Float): FloatArray

/** * Returns an array containing the specified [Long] numbers. */
public fun longArrayOf(vararg elements: Long): LongArray

/** * Returns an array containing the specified [Int] numbers. */
public fun intArrayOf(vararg elements: Int): IntArray

/** * Returns an array containing the specified characters. */
public fun charArrayOf(vararg elements: Char): CharArray

/** * Returns an array containing the specified [Short] numbers. */
public fun shortArrayOf(vararg elements: Short): ShortArray

/** * Returns an array containing the specified [Byte] numbers. */
public fun byteArrayOf(vararg elements: Byte): ByteArray

/** * Returns an array containing the specified boolean values. */
public fun booleanArrayOf(vararg elements: Boolean): BooleanArray

原生數組定義:

val mArray: IntArray = intArrayOf(1, 3, 5, 7)

2.Any?可空類型

可空類型是Kotlin類型系統的一個特性,主要是爲了解決Java中的 NullPointerException 問題。Kotlin把可空性做爲類型系統的一部分,Kotlin編譯器能夠直接在編譯過程當中發現許多可能的錯誤,並減小在運行時拋出異常的可能性。

3.kotlin中的null

kotlin中null和null值是相等的,null不是Any類型,null是Any?類型。

本文分享 CSDN - 秦川小將。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索