Kotlin的類型系統(tǒng)

6.1 可空性

可空性:Kotlin系統(tǒng)中避免NullPointerException錯誤的特性

  1. 可空類型
    如果你允許調(diào)用方法時傳給它所有可能的實參 ,包括哪些可以為null的實參他爸,需要顯式地在類型名稱后面加上文號來標(biāo)記距误。
fun strLenSafe(s:String?) = ···
//問號可以加在任何類型的后面來表示這個變量可以存儲null引用

沒有問號的類型標(biāo)識這種類型的變量不能存儲null引用己莺。所有常見類型默認(rèn)都是非空的,除非顯式地標(biāo)記為可空
一旦標(biāo)記為可空斤儿,則能對該變量進(jìn)行的操作也會受到限制

  1. 類型的含義
    類型就是數(shù)據(jù)的分類飞盆,決定了該類型可能的值,以及該類型的值上可以完成的操作

  2. 安全調(diào)用運算符:‘?.’
    允許把一次null檢查和一次方法調(diào)用合并成一個操作
    調(diào)用null值的方法融击,調(diào)用不會發(fā)生筑公,表達(dá)式的值為null
    也可以調(diào)用屬性

  3. Elvis運算符:‘?:’

fun foo(s: String?){
  val t :String = s  ?: ""
}

Elvis運算符接收兩個參數(shù),如果第一個運算數(shù)不為null尊浪,運算結(jié)果就是第一個運算數(shù)匣屡,否則為第二個運算數(shù)

  1. 安全轉(zhuǎn)換運算符:‘a(chǎn)s?’
    安全轉(zhuǎn)換運算符嘗試把值轉(zhuǎn)換成給定的類型,如果類型不合適就返回null

  2. 非空斷言:‘!!’

fun ignoreNulls(s: String?){
  val sNotNull:String = s!!
}
//如果s為null拇涤,則拋出NullPointerException捣作,否則表達(dá)式返回s
  1. ‘let’函數(shù)
    ‘let’函數(shù)做的事情就是把一個調(diào)用它的對象編程Lambda表達(dá)式的參數(shù)。
foo?.let{
  print(it)
}
//foo為null時鹅士,Lambda不會被執(zhí)行
  1. 延遲初始化的屬性
  2. 可空類型的擴(kuò)展
  1. 類型參數(shù)的可空性
    Kotlin中所有泛型類和泛型函數(shù)的類型參數(shù)默認(rèn)都是可空的券躁。
    要使類型參數(shù)非空,必須要為它指定一個非空的上界,那樣泛型會拒絕可空值作為實參

  2. 可空性和Java

6.2基本數(shù)據(jù)類型和其他基本類型

Kotlin不區(qū)分基本數(shù)據(jù)類型和它們的包裝類型

  1. 基本數(shù)據(jù)類型:Int也拜、Boolean和其他
  2. 可空的基本數(shù)據(jù)類型:Int?以舒、Boolean?和其他
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市慢哈,隨后出現(xiàn)的幾起案子蔓钟,更是在濱河造成了極大的恐慌,老刑警劉巖岸军,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奋刽,死亡現(xiàn)場離奇詭異瓦侮,居然都是意外死亡艰赞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門肚吏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來方妖,“玉大人,你說我怎么就攤上這事罚攀〉趁伲” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵斋泄,是天一觀的道長杯瞻。 經(jīng)常有香客問我,道長炫掐,這世上最難降的妖魔是什么魁莉? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮募胃,結(jié)果婚禮上旗唁,老公的妹妹穿的比我還像新娘。我一直安慰自己痹束,他們只是感情好检疫,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祷嘶,像睡著了一般屎媳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上论巍,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天烛谊,我揣著相機與錄音,去河邊找鬼环壤。 笑死晒来,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的郑现。 我是一名探鬼主播湃崩,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼荧降,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了攒读?” 一聲冷哼從身側(cè)響起朵诫,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎薄扁,沒想到半個月后剪返,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡邓梅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年脱盲,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片日缨。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡钱反,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匣距,到底是詐尸還是另有隱情面哥,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布毅待,位于F島的核電站尚卫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏尸红。R本人自食惡果不足惜吱涉,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驶乾。 院中可真熱鬧邑飒,春花似錦、人聲如沸级乐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽风科。三九已至撒轮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贼穆,已是汗流浹背题山。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留故痊,地道東北人顶瞳。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親慨菱。 傳聞我的和親對象是個殘疾皇子焰络,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容