В чем разница между =
и :=
в Scala?
Я широко использовал google для "scala colon-equals", но не смог найти ничего определенного.
В чем разница между =
и :=
в Scala?
Я широко использовал google для "scala colon-equals", но не смог найти ничего определенного.
=
в scala является фактическим оператором присваивания - он выполняет несколько конкретных действий, которые по большей части не контролируются, например
val
или var
значения при созданииvar
:=
не является встроенным оператором - любой может перегрузить его и определить, чтобы он имел в виду все, что им нравится. Причина, по которой люди любят использовать :=
, состоит в том, что она выглядит очень привязанной и используется как оператор присваивания на других языках.
Итак, если вы пытаетесь выяснить, что означает :=
в конкретной библиотеке, которую вы используете... мой совет - просмотреть Scaladocs (если они существуют) для метода с именем :=
.
от Мартина Одерского:
from Цели Scala Дизайн
=
выполняет присвоение. :=
не определен в стандартной библиотеке или спецификации языка. Это имя, которое бесплатно для других библиотек или вашего кода, если хотите.
Scala допускает перегрузку оператора, где вы можете определить поведение оператора так же, как вы могли бы написать метод.
Как и в других языках, =
является оператором присваивания.
Не является стандартным оператором, который мне известен под названием :=
, но может определить его с этим именем. Если вы видите такой оператор, вы должны проверить документацию о том, что вы ищете, или найти, где этот оператор определен.
Существует много, которое вы можете сделать с операторами Scala. Вы можете сделать оператор практически из любых символов, которые вам нравятся.