Scala的操作符

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)

你可能感兴趣的:(Scala的操作符)