根据解释和我对scala中的附加操作的理解,它是正确的关联。所以给出了一个声明 List1 ::: List2只是List2.:::List1。有了这个说我试图做以下操作
val list1 = List(1,2,3,4)
val list2 = List(5,6,7,8)
list1 ::: list2 // this is good
list2.::: list1 //ERROR - Not applicable to List[B]code here
为什么第二个追加操作不编译?
答案 0 :(得分:1)
它不是编译的原因是因为那里有语法的混合和数学。 您可以使用常规语法进行方法调用:
list2.:::(list1)
注意点和括号。
或者您可以使用中缀表示法来调用arity-1的方法:
list1 ::: list2
但你不能在两者之间混合。
:::
运算符实际上是一个prepend而不是append运算符,
它在list2上运行(如你所说,它是正确的关联)并在它前面添加了list1的元素。