gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:27:04 25 4
gpt4 key购买 nike

我想编写看起来非常好用的Scala代码list indexOf foo getOrElse Int.MaxValue,但是现在我必须适应那些看起来很惯用的Java代码val result = list indexOf foo; if (result < 0) Int.MaxValue else result。是否有充分的理由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”,然后运行上面的命令。

关于scala - 为什么Scala的indexOf(在List等中)返回Int而不是Option [Int]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25455831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com