Scala 操作符(Operators)
Scala的操作符都是
方法
任何方法也都可以被看成是操作符
操作符标记法(Operator notation)
- infix: take two operands
- prefix: is unary, take just one operand
- postfix: is unary, take just one operand
关于方法的调用
Scala中,方法的使用有个约定:如果这个方法有副作用(side-effects),调用该方法时加上圆括号(parentheses);如果这个方法没有副作用,调用该方法时不加圆括号
Scala的 == 操作
Scala的 == 操作符,用来比较内容,即便是不同的对象,只要内容一致,就会判断相等
Scala使用eq方法来判断引用是否相等,也就是判断栈里面的变量是否指向同一个堆中的对象
操作符的优先级以及结合性(precedence and associativity)
操作符优先级
Scala操作符的优先级取决于该操作符的第一个字符
// 优先级列表
(all other special characters)
* / %
+ -
:
= !
< >
&
^
|
(all letters)
(all assignment operators)
优先级的例外规则
如果一个操作符以一个等号(=)结束,且不是如下操作符之一(>=, <=, ==, !=),此时这个操作符的优先级等同于简单的赋值操作(assignment =)
操作符结合性
Scala操作符的结合性取决于操作符的最后一个字符。任何方法以“:
”结尾,都是右结合性。如下所示:
val list = List(1,2,3,4)
5 :: list
// list.::(5)