gpt4 book ai didi

scala - 在 Scala 中获取子数组的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-03 05:01:56 25 4
gpt4 key购买 nike

我正在尝试在 scala 中获取子数组,但我对正确的做法有点困惑。我最想要的是如何在 python 中做到这一点:

x = [3, 2, 1]
x[0:2]

但我相当确定你不能这样做。

最明显的方法是使用 Java Arrays util 库。

import java.util.Arrays
val start = Array(1, 2, 3)
Arrays.copyOfRange(start, 0, 2)

但是在Scala中使用Java库总是让我感觉有点肮脏。我发现最“scalaic”的方法是

def main(args: List[String]) {
val start = Array(1, 2, 3)
arrayCopy(start, 0, 2)
}
def arrayCopy[A](arr: Array[A], start: Int, end: Int)(implicit manifest: Manifest[A]): Array[A] = {
val ret = new Array(end - start)
Array.copy(arr, start, ret, 0, end - start)
ret
}

但是有更好的方法吗?

最佳答案

可以调用切片方法:

scala> Array("foo", "hoo", "goo", "ioo", "joo").slice(1, 4)
res6: Array[java.lang.String] = Array(hoo, goo, ioo)

它的工作方式就像在 python 中一样。

关于scala - 在 Scala 中获取子数组的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10830944/

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