为什么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”,然后运行上面的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容