接續昨天的數字型別。
字面常數
型別轉換是將一種資料型別轉換為另一種資料型別的過程。有很多種不同的型別轉換方式,包括自動轉換和顯式轉換(強制轉換)。
自動轉換是指當 Kotlin 認為轉換是安全的且不會丟失數據時,它會自動執行的轉換。例如,可以將 Int 賦值給 Long,因為 Long 的範圍比 Int 大,不會造成數據丟失。
val intNumber: Int = 42
val longNumber: Long = intNumber.toLong() // 自動轉換
在這個例子之中,toLong() 函數執行了自動轉換。
顯式轉換是指您明確指定要將一種資料型別轉換為另一種的操作。這種轉換可能會導致數據丟失或不安全,因此您需要明確指定轉換操作。
val doubleNumber: Double = 3.14
val intNumber: Int = doubleNumber.toInt() // 顯式轉換
在這個例子之中,toInt() 函數執行了顯式轉換,將 Double 轉換為 Int。如果 doubleNumber 是一個帶有小數部分的數字,則小數部分將被截斷。
安全轉換是使用 as? 運算符來嘗試將一種型別轉換為另一種型別,如果轉換不成功,則返回 null 而不是引發異常。
val anyValue: Any = "Hello"
val stringValue: String? = anyValue as? String // 安全轉換
在這個例子之中,我們嘗試將 anyValue 轉換為 String,如果 anyValue 不是 String 型別,則 stringValue 將為 null。
強制轉換是使用 as 運算符來將一種型別轉換為另一種型別,如果轉換不成功,則會引發 ClassCastException 異常。
val anyValue: Any = "Hello"
val stringValue: String = anyValue as String // 強制轉換
在這個例子中,如果 anyValue 不是 String 型別,則會引發異常。
接下來,就是明天把資料型別結束。