跳至主要内容

Kotlin 操作子

Kotlin Operators

Operator使用處使用情境範例
?型別之後代表該變數允許為 nullval email: String?
?.方法呼叫時safe-call, 回傳null或進行指定動作s?. toUpperCase()一個點不多做, null 或做後面的事
let方法呼叫時忽略或進行指定expressionemail?.let {email -> sendMailTo(mail)}一個點不多做, null 或做後面的事
?:變數與默認值之間null-coalescing, 變數若為null則給予預設值email ?: "Not Assigned"兩個點多做事(給預設值)ie做後面的事
::lambda expression成員引用, member references函數, 頂層函數,建構子,extension 函數引用
as變數與型別間casting, 型別錯會拋出 ClassCastException
as?變數與型別間safe casting, 型別檢查覆蓋 ClassCastExceptionval person = object as? Person ?: return false
is/!isif conditionType checking + castingif(s is String){ println(s)},
與 smart casting比較
!boolean, in...NOT
!compilerPlatform Type Only, String!Compiler 中特殊的類型僅與javaCode交互作用時會遇到。用來到表JavaCode中未告知是否可以為null的資料
!!變數之後Not-null assertions, 非空斷言,暴力告知compiler變數不會為 nullval sex = tom.gender!!