Я могу использовать оператор scalaz
|>
, когда я хочу переключить функцию и объект так что читаемость может быть немного больше. Позвольте представить вам модельную функцию:
def length2(x:String) = x.length * 2
Теперь я могу написать ее обоими способами: "aoeu" |> length2
length2("aoeu")
Но если я определю эту функцию как более общую, она перестанет работать. def length2(x:SeqLike[_
,_
]) = x.length * 2
length2("aoeu") // ok
"aoeu" |> length2 // doesn't work
Почему компилятор этого не понимает? Определенно существует неявное преобразование из String
в некоторое смешение классов в трейте SeqLike
.