有人可以将此翻译成对我有意义的东西吗? (在学习具有java / c /汇编背景的Scala的过程中):
broadcast(wireFormat.render(msg),selectedResources.map(_.resource).toSet.asJava).map(_ => msg)
我理解/得到大部分内容,但有两个部分仍然有点模糊: 1)我假设map( .resource)正在字段[resource]上运行“Any” - 通过它传递的东西 - 这是正确的吗? 2)操作“ => msg”在语句的最后部分做了什么?
TIA。
编辑:由于某种原因,下划线字符没有在问题#2中呈现,所以它应该是:
_ => msg
答案 0 :(得分:1)
解码:selectedResources.map(_.resource)
等于selectedResources.map(x => x.resource)
(1)。 _
称为占位符。 (1).toSet可能正在返回一个Scala集,然后使用asJava
.map(_ => msg)
只是.map(x => msg)
。基本上你没有使用任何元素。例如:
val msg = "hey"
scala> List(1,2,3).map(_ => hey)
res0: List[String] = List(hey,hey,hey)