Scala在Variadic函数中用下划线标出星号?
发布时间:2020-12-16 18:53:33 所属栏目:安全 来源:网络整理
导读:参见英文答案 What does `:_*` (colon underscore star) do in Scala?????????????????????????????????????3个 我目前正在关注 Functional Programming In Scala 这是在List [A]中应用的伪实现 def apply[A](as: A*): List[A] = if (as.isEmpty) Nil else :
参见英文答案 >
What does `:_*` (colon underscore star) do in Scala?????????????????????????????????????3个
我目前正在关注 Functional Programming In Scala 这是在List [A]中应用的伪实现 def apply[A](as: A*): List[A] = if (as.isEmpty) Nil else ::(as.head,apply(as.tail: _*)) 如果我省略:_ * in astail:_ *,scala抱怨类型不匹配,这是有道理的,因为as.tail是Seq [A]. 但_ *究竟在这做什么? 编辑:: 正确的术语是序列通配符 解决方法
:_ *表示法只是告诉scala编译器处理传递给方法的集合的元素(在参数中进行的集合:_ *),好像它们已经逐个传递到varargs方法中一样.例如,如果你有
def foo(x: Int*) = x.sum val xs = Seq(1,2,3,4) 然后 foo(xs: _*) 就像你打字一样工作 foo(1,4) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 通过SSH将服务器配置置于版本控制中
- 如何使Vim了解* .md文件包含Markdown代码,而不是Modula-2代
- 如何从puppet运行shell脚本?
- 为什么Scala不允许List.map _并在REPL中键入签名
- angularjs – 如何设置ngClick仅用于ngRepeat中的$first元素
- 利用网上免费的WebService实现一个名言警句输出程序
- angularjs – 角度资源编码URL
- twitter-bootstrap – 在Twitter Bootstrap中的表中居中文本
- shell介绍、命令历史、命令补全和别名、通配符、输入输出重
- AngularJS – (使用Ionic框架) – 头标题上的数据绑定不起作