gpt4 book ai didi

ruby - Rubys 的 each_slice 的 Scala 版本?

转载 作者:数据小太阳 更新时间:2023-10-29 06:52:15 24 4
gpt4 key购买 nike

Scala 有 Rubys 的版本吗 each_slice来自 Array 类?

最佳答案

Scala 2.8 有 grouped 将数据分成大小为 n 的 block (可用于实现 each_slice 功能):

scala> val a = Array(1,2,3,4,5,6)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6)

scala> a.grouped(2).foreach(i => println(i.reduceLeft(_ + _)) )
3
7
11

据我所知,在 2.7.x 中没有任何东西可以开箱即用,但是从 take(n)drop( n) 来自RandomAccessSeq:

def foreach_slice[A](s: RandomAccessSeq[A], n: Int)(f:RandomAccessSeq[A]=>Unit) {
if (s.length <= n) f(s)
else {
f(s.take(n))
foreach_slice(s.drop(n),n)(f)
}
}

scala> val a = Array(1,2,3,4,5,6)
a: Array[Int] = Array(1, 2, 3, 4, 5, 6)

scala> foreach_slice(a,2)(i => println(i.reduceLeft(_ + _)) )
3
7
11

关于ruby - Rubys 的 each_slice 的 Scala 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2456072/

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