加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么Scala的indexOf(在List等中)返回Int而不是Option [Int]?

发布时间:2020-12-16 18:45:06 所属栏目:安全 来源:网络整理
导读:我想编写非常好看的惯用 Scala代码列表indexOf foo getOrElse Int.MaxValue但现在我必须解决idiotic Java看代码val结果= list indexOf foo; if(result 0)Int.MaxValue else结果. Scala中的indexOf返回Int而不是Option [Int]是否有充分的理由 解决方法 它不一
我想编写非常好看的惯用 Scala代码列表indexOf foo getOrElse Int.MaxValue但现在我必须解决idiotic Java看代码val结果= list indexOf foo; if(result< 0)Int.MaxValue else结果. Scala中的indexOf返回Int而不是Option [Int]是否有充分的理由

解决方法

它不一定是那样的.

scala> "abcde" index 'c'
res0: psp.std.Index = 2

scala> "abcde" index 'z'
res1: psp.std.Index = -1

scala> "abcde" index 'z' match { case Index(n) => n ; case _ => MaxInt }
res2: Int = 2147483647

// Emphasizing that at the bytecode level we still return an Int - no boxing.
scala> :javap psp.std.SeqLikeExtensionOps
[...]
public abstract int index(A);
  descriptor: (Ljava/lang/Object;)I

那是从psp-std开始,你可以运行“sbt console”,然后运行上面的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读