一、如果函数文本由带一个参数的一句话组成,你都不需要显式命名和指定参数。
这样,下面的代码是有效的: args.foreach(println)
二、如果方法仅带一个参数,你可以不带点或括号的调用它。例如 1+2 其实是(1).+(2)
三、(1)任何对某些在括号中的参数的对象的应用将都被转换为对apply方法的调用。
当然前提是这个类型实际定义过apply方法。例如 对数组的访问
val greetStrings: Array[String] = new Array[String](3);
print(greetStrings(i))转换成greetStrings.apply(i)。
(2)与上相似的是,当对带有括号并包括一到若干参数的变量赋值时,
编译器将把它转化为对带有括号里参数和等号右边的对象的update方法的调用。例如,
greetStrings(0) = "Hello" 将被转化为 greetStrings.update(0, "Hello")