for循环中经常出现这么一个语句:
for(arg <- 'a' to 'z') {...}
其中这个to貌似很神奇。其实它是一个运算符。这是一个Charactor类的方法。
1 to 10 同样to是Int类中的一个方法,并且这个语句的另外一种描述方式是:(1).to(10)或者1.to(10)
同样的道理,1+2其实是1.+(2)的简写。
当你在一个或多个值或变量外使用括号时,Scala会把它转换成对名为apply的方法调用。
greetStrings(i)转换成greetStrings.apply(i)。 ——取值时
当对带有括号并包括一到若干参数的变量赋值时,编译器将把它转化为对带有括号里参数和等号右边的对象的update方法的调用
greetStrings(0) = "Hello"转换成greetStrings.update(0, "Hello")。 ——赋值时
所以说apply(...)和update(...)方法需要好好的对待~