操作符的规则大体和其他语言差不多,有几个需要说明的:
1、由于scala中允许运算符重载,所以当你看到一起奇怪的运算符的时候不要奇怪,这些都是方法调用而已
2、方法调用的.操作符很多时候可以不写,而是用空格的方式,另外对于无参方法你也可以不写(),但是有一个比较通用的规则是,对于没有返回值的方法还是写上()
3、scala中的几个特殊方法apply,update,unapply,unapplySeq
apply 这个之前提到过,如果你看到如下的调用方式
f(arg1,arg2,… )
这里如果f不是一个函数或者方法,则这里调用的就是f.apply(arg1,arg2, … )
如果在表达式的后面出现了赋值操作符=,如:
f(arg1,agr2, … )=vlaue
这里调用的是update方法,像这样f.update(arg1, arg2, … , vaule)
unapply与unapplySeq 被称作提取器,主要用于后面会需要的模式匹配(scala的核心)