scala相关通则

来源:互联网 发布:查理二世 知乎 编辑:程序博客网 时间:2024/04/28 20:51
如果一个函数只有一个参数并且只包含一个表达式,那么就无需明确指明参数。
如果方法仅带一个参数,你可以不带点或括号的用它。
当在一个或多个值或变量外使用括号时,scala会把它转换成对名为apply的方法调用。
当带有括号并包括一到若干参数的变量赋值时,编译器将把它转化为对带有括号里参数和等号右边的对象的update方法的调用。
greetString(0) = "hello"  == greetStrings(0,"hello")
apply方法带可变数量个参数,被定义在Array的伴生对象:companion object上。
就像在Array类上调用一个叫做apply的静态方法/。
共享相同类型的不可变对象序列, Scala 的 List 类才是。
List 最常用的操作符是发音为“ cons”的‘ ::’ 。 Cons 把一个新元素组合到已有 List的最前端,然后返回结果 List
表达式“ 1 :: twoThree”中, ::是它右操作数,列表 twoThree,的方法。你或许会疑惑::方法的关
联性上有什么东西搞错了,不过这只是一个简单的需记住的规则:如果一个方法被用作操作符标注,如 a* b,
那么方法被左操作数调用,就像 a.*(b)——除非方法名以冒号结尾。这种情况下,方法被右操作数
调用。因此, 1 :: twoThree 里, ::方法被 twoThree 调用,传入 1,像这样: twoThree.::(1)。
0 0