gpt4 book ai didi

scala - 向量化具有多个返回值的 Scala 函数

转载 作者:行者123 更新时间:2023-12-01 10:58:08 27 4
gpt4 key购买 nike

向量化返回多个值的 Scala 函数的最优雅方法是什么?

例如,假设我有函数:

def Foobar(foo: Int, bar: Int): (Int, Int) = (foo, bar)

如果它返回一个值,我会这样做:

val a = Array(1, 2, 3)
val b = Array(4, 5, 6)
val c = (a,b).zipped.map(foobar)

但由于它返回一个元组,我最终得到一个 Array[(Int,Int)],而我更喜欢 (Array[Int], Array[Int]) 。做这样的事情的正确方法是什么?是否有任何聪明的模式可以将其概括为如下内容:

val c = vectorized(foobar,a,b)

任何想法将不胜感激。谢谢!

最佳答案

你可以解压它(显然,它的操作与压缩相反):

val c = foobar(a,b).unzip
//res2: (s.c.m.IndexedSeq[Int], s.c.m.IndexedSeq[Int]) = (ArrayBuffer(1, 2, 3),ArrayBuffer(4, 5, 6))

但你最终会得到 IndexedSeqs,而不是数组。

关于scala - 向量化具有多个返回值的 Scala 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13725211/

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