在本文中,您將學(xué)習(xí)類型轉(zhuǎn)換。如何借助示例將一種類型的變量轉(zhuǎn)換為另一種類型。
在Kotlin中,一種類型的數(shù)值不會自動轉(zhuǎn)換為另一種類型,即使另一種類型更大。這與Java處理數(shù)字轉(zhuǎn)換的方式不同。例如:
在Java中,
int number1 = 55; long number2 = number1; // 有效代碼
在這里,int類型的number1的值會自動轉(zhuǎn)換為long類型,并分配給變量number2。
在kotlin,
val number1: Int = 55 val number2: Long = number1 // Error: type mismatch.
盡管Long的大小大于Int,但Kotlin不會自動將 Int 轉(zhuǎn)換為 Long 。
相反,您需要顯式使用 toLong() (以轉(zhuǎn)換為Long類型)。Kotlin這樣做是為了確保類型安全以避免意外。
val number1: Int = 55 val number2: Long = number1.toLong()
以下是Kotlin中用于類型轉(zhuǎn)換的函數(shù)列表:
toByte() - 將字符串解析為帶符號的字節(jié)數(shù),然后返回結(jié)果。
toShort() - 將 Int 值轉(zhuǎn)換為Short。
toInt() - 將字符串解析為Int數(shù)字并返回結(jié)果。
toLong() - 將字符串解析為Long數(shù)字并返回結(jié)果。
toFloat() - 將字符串解析為Float數(shù)字并返回結(jié)果。
toDouble() - 將字符串解析為Double數(shù)字并返回結(jié)果。
toChar() - 將Int值轉(zhuǎn)換為Char。
注意,沒有 Boolean 類型的轉(zhuǎn)換。
上面提到的函數(shù)可以在兩個方向上使用(從較大類型到較小類型的轉(zhuǎn)換 以及從較小類型到較大類型的轉(zhuǎn)換)。
但是,從較大的類型到較小的類型的轉(zhuǎn)換可能會截斷該值。例如,
fun main(args : Array<String>) { val number1: Int = 545344 val number2: Byte = number1.toByte() println("number1 = $number1") println("number2 = $number2") }
運行該程序時,輸出為:
number1 = 545344 number2 = 64