我是Scala的新手,正在学习一本关于它的书( Scala编程)。我真的迷路了,作者试图用下面的代码解释。任何人都可以更详细地解释一下吗?
{ val x = a; b.:::(x) }
答案 0 :(得分:2)
:::
是一个方法,它将列表作为参数添加到列表中
你可以将其视为
val a = List(1, 2)
val b = List(3, 4)
val x = a
b.prependList(x)
但实际上对于单个参数方法,如果它不是模糊的scala允许跳过括号和点,这就是这个方法应该用来看起来不丑的方式
x ::: b
它只会加入这两个列表,但这里有一些技巧
如果方法名称以:它将以另一种方式绑定
因此输入x ::: b
就好像这类事情已经完成(x):::.b
一样。显然你不能在scala中输入它,不会编译,但这就是发生的事情。感谢此x
位于运算符的左侧,它的元素将位于此调用结果列表的左侧(开头)。
哦,好吧,现在我找到了一些更多的解释,以及你发布的同一段代码,回答这个问题:What good are right-associative methods in Scala?
答案 1 :(得分:-1)
假设a和b是列表:它会将a
分配给x
,然后返回列表b
前面的列表x
。
例如,如果val a = List(1,2,3)
和val b = List(4,5,6)
则返回List(1,2,3,4,5,6)
。