用于地图方法/功能的Scala代码部分的翻译

时间:2013-08-02 15:24:30

标签: scala translate

有人可以将此翻译成对我有意义的东西吗? (在学习具有java / c /汇编背景的Scala的过程中):

broadcast(wireFormat.render(msg),selectedResources.map(_.resource).toSet.asJava).map(_ => msg)

我理解/得到大部分内容,但有两个部分仍然有点模糊: 1)我假设map( .resource)正在字段[resource]上运行“Any” - 通过它传递的东西 - 这是正确的吗? 2)操作“ => msg”在语句的最后部分做了什么?

TIA。

编辑:由于某种原因,下划线字符没有在问题#2中呈现,所以它应该是:

_ => msg

1 个答案:

答案 0 :(得分:1)

解码:selectedResources.map(_.resource)等于selectedResources.map(x => x.resource)(1)。 _称为占位符。 (1).toSet可能正在返回一个Scala集,然后使用asJava

将其转换为java.util.Set

.map(_ => msg)只是.map(x => msg)。基本上你没有使用任何元素。例如:

val msg = "hey"
scala> List(1,2,3).map(_ => hey)
res0: List[String] = List(hey,hey,hey)