0
A
回答
4
我們可以把它放在斯卡拉Map[String, Int]
的上下文中。
Map("a" -> Option(1), "b" -> None)
m.get(key)
有三種可能的輸出類型。
如果密鑰存在,並有一個值,我們得到Some(Some(1))
。
scala> m.get("a")
res28: Option[Option[Int]] = Some(Some(1))
如果密鑰存在但沒有值,我們得到Some(None)
。
scala> m.get("b")
res29: Option[Option[Int]] = Some(None)
如果密鑰根本不存在,我們得到None
。
scala> m.get("c")
res30: Option[Option[Int]] = None
,你需要編碼三種狀態這是在的情況下非常有用:
- 存在與價值
- 存在沒有價值
- 不存在
大多數我們(我)不關心第二種情況,所以我們崩潰到Option[Int]
,但它肯定是你的seful。
5
示例:打開文件並從中讀取Int
的函數。
- 如果沒有文件,你會得到一個
None
- 如果有一個文件,但它裏面沒有整數,你會得到一個
Some(None)
- 如果有一個文件,但它包含一個
123
,你會得到一個Some(Some(123))
+0
謝謝,我很欣賞答案! –
相關問題
- 1. 爲什麼phonegap不嵌入它自己的webview?
- 2. Sbt:爲什麼它需要scala-lang 2.10.3?
- 3. 爲什麼我需要將自己投入ID?
- 4. 什麼時候在Scala中需要@uncheckedVariance,爲什麼它在GenericTraversableTemplate中使用?
- 5. 爲什麼要嵌入腳本語言?
- 6. 爲什麼嵌入在HTML
- 7. 什麼行爲是首選? (嵌入Python)
- 8. Guice需要它自己的線程是什麼?
- 9. 什麼是嵌入自己的網頁上的其他網頁內容possibilites
- 10. 爲什麼要在自己的前面添加Ruby方法名?
- 11. 在AngularJS中,爲什麼指令需要自己?
- 12. 什麼是Scala中的清單,什麼時候需要它?
- 13. 爲什麼viewPager的中間選項卡從不爲自己調用onCreateView?
- 14. 爲什麼Scala需要符號?
- 15. 什麼是依賴注入,爲什麼要使用它?
- 16. 什麼是我自己託管SignalR的選項?
- 17. 爲什麼.NET排序算法要求比較項目與自己?
- 18. 在自己的模塊中嵌入jQuery
- 19. 什麼是在TabControl中嵌入選項卡的正確方法
- 20. 爲什麼Update()不止一次地調用它自己?
- 21. 爲什麼UIImageView自己的UIImage。它違反了MVC原則嗎?
- 22. 爲什麼ormlite有它自己的註釋?
- 23. 爲什麼打字稿有它自己的包管理器?
- 24. 爲什麼結構不能包含它自己的實例?
- 25. 爲什麼scala沒有內置的PartialFunctionN?
- 26. 爲什麼我們自己需要合併幾何?
- 27. 爲什麼要創建自己的請求對象?
- 28. 爲什麼每個進程都需要自己的頁表?
- 29. 爲什麼要創建自己的Haar分類器級聯?
- 30. 爲什麼我需要Iterator接口,爲什麼要使用它?
REPL輸出類型的密封它,其餘的輸出也很有幫助。謝謝! –