Comments 8
Интересно, практически руководство к "хитрым" методам коллекций. Однако некоторые рекомендации могут привести к менее читаемому коду (хотя, конечно, это вопрос вкусовщины и сильно зависит от контекста).
Например, вспомнить навскидку, что означает ++:=
— тяжело.
Другой пример: в тестах, на мой взгляд, assert(x == Some(y))
гораздо понятнее, чем assert(x.contains(y))
(соответственно x shouldBe Some(y)
в ScalaTest лучше, чем x should contain (y)
)
В случае же с изменяемой коллекцией `a` это метод, добавляющий `b` в начало `a`, но уже с модификацией `a` вместо создания новой коллекции.
А вот совсем мозговзрывающие методы — это `/:` и `:\` — мне кажется только Одерски может ими пользоваться свободно.
Просто, но воспроизводить каждый раз цепочку для ++:=
в уме, когда этот оператор используется пару раз на весь проект — задолбаешься.
На вкус и цвет… Мне операторы '/:' и ':\' показались проще, чем foldLeft и foldRight. И главное сразу видно какой аргумент элемент коллекции, а какой аккумулятор.
Уже не может :-)
Scala коллекции: секреты и трюки