gpt4 book ai didi

Scala 在可变函数中下划线星号?

转载 作者:行者123 更新时间:2023-12-04 11:36:09 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What does `:_*` (colon underscore star) do in Scala?

(4 个回答)


5年前关闭。




我目前正在关注 Functional Programming In Scala

这是 apply 的伪实现在 List[A]

def apply[A](as: A*): List[A] = 
if (as.isEmpty) Nil
else ::(as.head, apply(as.tail: _*))

如果我省略 : _*as.tail: _* , scala 提示类型不匹配,这是有道理的,因为 as.tailSeq[A]这里。

但是 _*是什么意思?到底在这里做什么?

编辑::

正确的术语是 序列通配符

最佳答案

: _*表示法只是告诉 Scala 编译器将您传递给方法的集合的元素(在参数中处理 : _* 的集合)视为已将它们一一传递到 varargs 方法中。例如,如果你有

def foo(x: Int*) = x.sum
val xs = Seq(1, 2, 3, 4)

然后
foo(xs: _*)

就像你打字一样工作
foo(1, 2, 3, 4)

关于Scala 在可变函数中下划线星号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900434/

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