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