Kotlin研發第十八彈 型別檢查和自動轉換

2021-09-23 22:35:41 字數 1709 閱讀 3334

我們可以執行是通過上面兩個操作符檢查乙個物件是都是某個特定型別

//判斷當前資料是否是某種型別

funjudgetypetest()

}

輸出

2
很多情形需要使用費明確的型別,編譯器會跟蹤is檢查靜態變數,並在需要的時候自動插入安全轉換:

fun

isstring

(str:any)

}

編譯器足夠智慧型如何轉換是安全的,如果不安全,將不會返回

或者再||&&操作符連用

if

(x is string && x.length >0)

print

(x.length)

// x is automatically cast to string

when和while中使用

fun

name

(x:any)")

}}

??? when之前我認為智慧型在封閉函式seal中不需要帶else,現在使用any為何也可以不帶????

var istrue=

true

while

((x is int)

&&istrue)

如果轉換是不被允許的那麼轉換符就會丟擲乙個異常因此我們稱之為不安全的。在kotlin中我們用字首as操作符標識

val x: string = y as string
注意null不能別轉換為string因此他不是nullable,也就是說y是空的,則上面的**會丟擲空異常

val x:string?

=y as string?

為了避免派出異常,可以用as?這個安全轉換符,這樣失敗就會返回null。

val x:string?

=y as

? string

在類成員中,this標識當前類的物件

在擴充套件函式或擴充套件字面函式中,this標識,左邊接受者引數

如果this沒有應用者,則指向的是最內層的必和範圍。為了再其他範圍中返回this,需要使用標籤

this的使用範圍

為了在範圍外部(乙個類或者表示式函式或者帶標籤的擴充套件字面函式)訪問this,我們需要在使用this@lable作為lable

//this的使用

class thisa

// val funlit2=

}fun

testthis()

}}

中間使用this@lambda不成功不知道原因?????

第十八節 快取

本節將通過對 2019 11 05 mynopcommerce vs19core2.2nop4.20 不刪,014 新增一些中介軟體的定義 程式進行重構,從而來實現授權功能。重構nop.web.framework.infrastructure.dependencyregistrar 類,重新定義 r...

程式設計第十八題

rpg girls今天和大家一起去遊樂場玩,終於可以坐上夢寐以求的過山車了。可是,過山車的每一排只有兩個座位,而且還有條不成文的規矩,就是每個女生必須找個個男生做partner和她同坐。但是,每個女孩都有各自的想法,舉個例子把,rabbit只願意和xhd或pqk做partner,grass只願意和l...

作業第十八周

1 請列出 nginx 常用模組的各個優缺點以及區別 ngx http auth basic module 實現基於使用者的訪問控制,使用basic機制進行使用者認證,優點 使用登陸對話方塊的方式實現使用者認證,缺點 認證檔案依賴httpd tools軟體包。ngx http stub status...