Kotlin學習筆記(17) 類型檢測及自動類型轉換
is運算符檢測一個表達式是否某類型的一個實例。如果一個不可變的局部變量或屬性已經判斷出為某類型,那麼檢測後的分支中可以直接當作該類型使用,無需顯式轉換:
fun getStringLength1(obj: Any): Int? {
if (obj is String) {
// `obj` 在该条件分支内自动转换成 `String`
return obj.length
}
// 在离开类型检测分支后,`obj` 仍然是 `Any` 类型
return null
}
fun getStringLength2(obj: Any): Int? {
if (obj !is String) return null
// `obj` 在这一分支自动转换为 `String`
return obj.length
}
fun getStringLength3(obj: Any): Int? {
// `obj` 在 `&&` 右边自动转换成 `String` 类型
if (obj is String && obj.length > 0) {
return obj.length
}
return null
}
fun main() {
fun printLength1(obj: Any) {
println("'$obj' string length is ${getStringLength1(obj) ?: "... err, is empty or not a string at all"} ")
}
printLength1("Incomprehensibilities")
printLength1("")
printLength1(1000)
println("-----------------------------------------------")
fun printLength2(obj: Any) {
println("'$obj' string length is ${getStringLength2(obj) ?: "... err, not a string"} ")
}
printLength2("Incomprehensibilities")
printLength2(1000)
printLength2(listOf(Any()))
println("-----------------------------------------------")
fun printLength3(obj: Any) {
println("'$obj' string length is ${getStringLength3(obj) ?: "... err, not a string"} ")
}
printLength3("Incomprehensibilities")
printLength3(1000)
printLength3(listOf(Any()))
}
輸出畫面
'Incomprehensibilities' string length is 21
'' string length is 0
'1000' string length is ... err, is empty or not a string at all
-----------------------------------------------
'Incomprehensibilities' string length is 21
'1000' string length is ... err, not a string
'[java.lang.Object@3af49f1c]' string length is ... err, not a string
-----------------------------------------------
'Incomprehensibilities' string length is 21
'1000' string length is ... err, not a string
'[java.lang.Object@19469ea2]' string length is ... err, not a string
訂閱:
張貼留言 (Atom)
2024_09 作業3 以Node-Red 為主
2024_09 作業3 (以Node-Red 為主 Arduino 可能需要配合修改 ) Arduino 可能需要修改的部分 1)mqtt broker 2) 主題Topic (發行 接收) 3) WIFI ssid , password const char br...
-
python pip 不是内部或外部命令 -- 解決方法 要安裝 Pyqt5 1. 首先,開啟命令提示字元。 2. 輸入 pip3 install pyqt5 好像不能執行 ! ! 錯誤顯示 : ‘ pip3 ’ 不是內部或外部命令、可執行的程式或批...
-
課程講義 下載 11/20 1) PPT 下載 + 程式下載 http://www.mediafire.com/file/cru4py7e8pptfda/106%E5%8B%A4%E7%9B%8A2-1.rar 11/27 2) PPT 下載...
-
• 認 識 PreFix、InFix、PostFix PreFix(前序式):* + 1 2 + 3 4 InFix(中序式): (1+2)*(3+4) PostFix(後序式):1 2 + 3 4 + * 後 序式的運算 例如: 運算時由 後序式的...
沒有留言:
張貼留言