Option: 标准类库中的Option类型用样例类来表示那种可能存在、也可能不存在的值。函数
Option 有两个子类别,一个是 Some,一个是 None,当他回传 Some 的时候,表明这个函式成功地给了你一个 String,而你能够透过 get() 这个函式拿到那个 String,若是他返回的是 None,则表明没有字符串能够给你。 固然,在返回 None,也就是没有 String 给你的时候,若是你还硬要调用 get() 来取得 String 的话,Scala 同样是会报告一个 Exception 给你的 由于 Option[T] 除了 get() 以外,也提供了另外一个叫 getOrElse() 的函式,这个函式正如其名--若是 Option 里有东西就拿出来,否则就给个默认值。 参考urlurl
implicit(隐式转换): *以implicit关键字声明的带有单个参数的函数。*implicit conversion function ,这样的函数将被自动应用,将值从一种类型转换为另外一种类型。 【 example】 咱们想把整数n转换成分数n/1..net
<!-- lang: scala --> implicit def int2Fraction (n: Int) = Fraction(n, 1)
这样就能够用以下表达式求值:scala
<!-- lang: scala --> val result = 3 * Fraction(4, 5) //将调用int2Fraction(3)
yield:对于for -yield表达式的语法是这样的: for {子句} yield {循环体} yield在整个循环体以前code
for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。Scala 中 for 循环是有返回值的。若是被循环的是 Map,返回的就是 Map,被循环的是 List,返回的就是 List,以此类推blog