Основываясь на объяснении и моем понимании операции добавления списка в scala, оно является правильным ассоциативным. Так что дано заявление List1 ::: List2 - не что иное, как List2.:::List1. При этом сказал, что я пытался сделать следующие операцииScala List append operation - требуется объяснение
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
Почему не вторая операция добавления компиляции?
Вам не хватает скобки. Попробуйте 'list2. :: :(list1)'. – marstran
, который сработал. Но какой трюк сделал этот дополнительный()? Как это помогает компилятору понять утверждение? – Gurupraveen
'list2. ::: list1' недействителен Синтаксис Scala. Вы должны либо использовать скобку (например, 'list2. :: :(list1)'), либо использовать нотацию infix, как вы это делали раньше (например, 'list1 ::: list2'). С помощью этой конкретной функции нотация infix имеет «list1», написанную первой, потому что функция является правильной ассоциативной. Функции с именем, заканчивающимся двоеточием, являются правильными ассоциативными в Scala. – marstran