Scala 特殊的对象和关键字

我的未来我决定 提交于 2019-12-07 11:13:21

Option: 标准类库中的Option类型用样例类来表示那种可能存在、也可能不存在的值。

Option 有两个子类别,一个是 Some,一个是 None,当他回传 Some 的时候,代表这个函式成功地给了你一个 String,而你可以透过 get() 这个函式拿到那个 String,如果他返回的是 None,则代表没有字符串可以给你。 当然,在返回 None,也就是没有 String 给你的时候,如果你还硬要调用 get() 来取得 String 的话,Scala 一样是会报告一个 Exception 给你的 因为 Option[T] 除了 get() 之外,也提供了另一个叫 getOrElse() 的函式,这个函式正如其名--如果 Option 里有东西就拿出来,不然就给个默认值。 参考url

implicit(隐式转换): *以implicit关键字声明的带有单个参数的函数。*implicit conversion function ,这样的函数将被自动应用,将值从一种类型转换为另一种类型。 【 example】 我们想把整数n转换成分数n/1.

<!-- lang: scala -->
implicit def int2Fraction (n: Int) = Fraction(n, 1)

这样就可以用如下表达式求值:

<!-- lang: scala -->
val result = 3 * Fraction(4, 5)  //将调用int2Fraction(3)

yield:对于for -yield表达式的语法是这样的: for {子句} yield {循环体} yield在整个循环体之前

for 循环中的 yield 会把当前的元素记下来,保存在集合中,循环结束后将返回该集合。Scala 中 for 循环是有返回值的。如果被循环的是 Map,返回的就是 Map,被循环的是 List,返回的就是 List,以此类推

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!