[英]What does { val x = a; b.:::(x) } mean in Scala?
我是Scala的新手,正在学习一本有关它的书(《 Scala中的编程》 )。 我真的迷失了,作者试图用下面的代码解释什么。 谁能详细解释一下?
{ val x = a; b.:::(x) }
:::
是一种方法,它将作为参数指定的列表放在调用它的列表的前面
你可以这样看
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
在运算符的左侧,并且其元素将在此调用结果列表的左侧(开始)。
哦,好了,现在我发现可能为您提供了更多说明,并且还发布了与您发布的代码相同的代码,以回答以下问题: Scala中的右关联方法有什么用?
假设a和b是列表:它将a
分配给x
,然后返回以列表x
开头的列表b
。
例如,如果val a = List(1,2,3)
和val b = List(4,5,6)
则返回List(1,2,3,4,5,6)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.