scala學(xué)習(xí)筆記四——null,None,Some,Option,Nothing,Nil,Unit,Any

1.null

null代表無(wú)值,但是這種無(wú)值經(jīng)常會(huì)發(fā)生各種bug。

2.Option,Some,None

Option是一個(gè)抽象類(lèi),它含有兩個(gè)具體的子類(lèi),分別是Some和None盐茎。其中,Some代表有值徙赢,None代表無(wú)值字柠。
使用Option的好處是,它代表可能有值狡赐,也可能無(wú)值窑业,但是返回None會(huì)相對(duì)更安全一些。
Scala 推薦使用Option類(lèi)型枕屉。

    val a=Map("1"->"hello","2"->"scala")
    println(a.get("1"))
    println(a.get("3"))

a.get("1")返回的是一個(gè)some類(lèi)型常柄。
a.get("3")返回的是一個(gè)None類(lèi)型。

Some(hello)
None

再來(lái)和Null對(duì)比一下安全性搀擂。

    println(None.toString)
    println(null.toString)

第一個(gè)程序可以正常運(yùn)行西潘,第二個(gè)則會(huì)拋出NullPointerException的異常。
當(dāng)返回的是Optopn類(lèi)型時(shí)哨颂,我們要獲得具體的值喷市,可以繼續(xù)使用get方法,但是此時(shí)為None值時(shí)威恼,會(huì)有異常品姓。

    val a=Map("1"->"hello","2"->"scala")
    println(a.get("1").get)
    println(a.get("3").get)

執(zhí)行結(jié)果為:

hello
Exception in thread "main" java.util.NoSuchElementException: None.get
...

所以在使用的時(shí)候可以用更安全的方式getOElse來(lái)獲取Option對(duì)象的值寝并。

    val a=Map("1"->"hello","2"->"scala")
    println(a.get("1").getOrElse("none"))
    println(a.get("3").getOrElse("none"))

執(zhí)行結(jié)果為:

hello
none

3.Nothing

Nothing是其他類(lèi)型的子類(lèi)型。Nothing沒(méi)有實(shí)例缭黔。Nothing和null的區(qū)別時(shí)食茎,Nothing是任何其他類(lèi)型的子類(lèi)型,而null是所有引用類(lèi)型的子類(lèi)馏谨。

4.Nil

Nil是一個(gè)空的List.可以定義為L(zhǎng)ist[Nothing]。

    val b:List[Nothing]=List()
    println(Nil)
    println(b==Nil)

結(jié)果為:

List()
true

5.Unit

Unit表示無(wú)值附迷。常用在方法里惧互,表示沒(méi)有返回值。

6.Any

Any是所有的類(lèi)的超類(lèi)喇伯。不知道數(shù)據(jù)類(lèi)型時(shí)喊儡,常被推斷為Any。AnyRef是Any的引用類(lèi)型的基類(lèi)稻据。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末艾猜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捻悯,更是在濱河造成了極大的恐慌匆赃,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件今缚,死亡現(xiàn)場(chǎng)離奇詭異算柳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)姓言,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)瞬项,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人何荚,你說(shuō)我怎么就攤上這事囱淋。” “怎么了餐塘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵妥衣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我唠倦,道長(zhǎng)称鳞,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任稠鼻,我火速辦了婚禮冈止,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘候齿。我一直安慰自己熙暴,他們只是感情好闺属,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著周霉,像睡著了一般掂器。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上俱箱,一...
    開(kāi)封第一講書(shū)人閱讀 51,258評(píng)論 1 300
  • 那天国瓮,我揣著相機(jī)與錄音,去河邊找鬼狞谱。 笑死乃摹,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跟衅。 我是一名探鬼主播孵睬,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼伶跷!你這毒婦竟也來(lái)了掰读?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤叭莫,失蹤者是張志新(化名)和其女友劉穎蹈集,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體食寡,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雾狈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抵皱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片善榛。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖呻畸,靈堂內(nèi)的尸體忽然破棺而出移盆,到底是詐尸還是另有隱情,我是刑警寧澤伤为,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布咒循,位于F島的核電站,受9級(jí)特大地震影響绞愚,放射性物質(zhì)發(fā)生泄漏叙甸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一位衩、第九天 我趴在偏房一處隱蔽的房頂上張望裆蒸。 院中可真熱鬧,春花似錦糖驴、人聲如沸僚祷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)辙谜。三九已至俺榆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間装哆,已是汗流浹背罐脊。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜕琴,地道東北人爹殊。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奸绷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子层玲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

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