What is the difference between =
and :=
in Scala?
I have googled extensively for "scala colon-equals", but was unable to find anything definitive.
= performs assignment. := is not defined in the standard library or the language specification. It's a name that is free for other libraries or your code to use, if you wish.
In general: :: - adds an element at the beginning of a list and returns a list with the added element. ::: - concatenates two lists and returns the concatenated list.
== is a final method, and calls . equals , which is not final. This is radically different than Java, where == is an operator rather than a method and strictly compares reference equality for objects.
The triple equals operator === is normally the Scala type-safe equals operator, analogous to the one in Javascript. Spark overrides this with a method in Column to create a new Column object that compares the Column to the left with the object on the right, returning a boolean.
=
in scala is the actual assignment operator -- it does a handful of specific things that for the most part you don't have control over, such as
val
or var
a value when it's createdvar
:=
is not a built-in operator -- anyone can overload it and define it to mean whatever they like. The reason people like to use :=
is because it looks very assignmenty and is used as an assignment operator in other languages.
So, if you're trying to find out what :=
means in the particular library you're using... my advice is look through the Scaladocs (if they exist) for a method named :=
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With