一、你要懂得 1.规则 (1)无分号:scala中如果一行只包含一条语句,那么语句后面可以不加分号; (2)对象的世界:在scala中,任何类型都是对象。 ——1.toString() // 返回字符串 "1",在这段语句中1是Int对象,它含有toString()方法; ——函数也是对象,函数是这个世界的一等公民(这体现了scala中函数式编程的特点) 2.声明值和变量 (1)Scala使用有两种关键字来声明值或变量: val:不变量,相当于java中的final var:可变量 在scala中,vala使用得更加频繁,Eg: val answer = 8 * 5 + 2 (2)scala的变量类型通常为缺省,如果不缺省,要使用如下形式 val greeting: String = null ,变量类型使用冒号放在变量名的后面。 3.方法调用 (1)在scala中,方法的调用与java相同,但是又有所扩展。例如: 对象T t=new T();调用方法:t.method(5)与java中相同,但有可以写成:t method 5——即剩略点号和括号。 (2)对于没有参数的方法,scala中可以不写括号,eg: 1.toString()可改写为1.toString; 4.基本数据类型 scala中有java中的基本数据类型,但它们都是对象形式。在使用时,可以自动转换为各自相应的Rich类型,Eg: 1.toString(),其中1是Int类型,但是该类型没有toString()方法,所以调用时由Int类型转换为RichInt类型;类似的有double-RichDouble,long-RichLong等。
5.运算符重载 (1)前面我们了解到scala中,一切都是对象,所以“1+1”实际上是1.+(1),其中+为运算符,我们在这里将其重载为方法:.+(),根据上面的省略规律,1.+(1)可改写为1+1;其它运算符也遵循相似的原则。 (2)但是scala中没有++与--运算,替代它们的是+=1 或 -=1; (3)apply方法 在scala中普遍使用类似函数调用的语法. 例如, 如果s是一个string类型,那么s(i)是string的第i个字符。其中,s(i)是由s.apply(i)简化而来的。在scala的对象中,apply方法总是可以去掉方法名,eg: