1.区分大小写
2.类名第一个大写
3.所有的方法名称的第一个字母用小写。
4.程序文件名 与对象名称匹配(新版本不需要,建议一致)
5.程序入口 def main(args:Array[String])
标识符
Scala 数据类型
byte
shout
int
long
char
boolean
float
double
以及和java不同的
String 字符序列
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最底端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类
val myVal : String = "Foo"
以上定义了常量 myVal,它是不能修改的。如果程序尝试修改常量 myVal 的值,程序将会在编译时报错。
Scala 访问修饰符
Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。
Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。
在 scala 中,对保护(Protected)成员的访问比 java 更严格一些。因为它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问。
这里的x指代某个所属的包、类或单例对象。如果写成private[x],读作"这个成员除了对[…]中的类或[…]中的包中的类及它们的伴生对像可见外,对其它所有类都是private。
Scala 运算符
位运算
! 按位或 有一个1即可
^ 按位异或 1^1 =0 0^0 = 0 不同则高
~ 取反 ~1 = 0
& 按位与 1&1 =1
Scala 方法与函数
闭包
类似于 java 函数式变成 调用外面的参数
Scala 数组
var z = new Array[String](3)
z(0) = "123"\
Scala Trait(特征)
Scala Trait(特征) 相当于 Java 的接口,实际上它比接口还功能强大。
与接口不同的是,它还可以定义属性和方法的实现。
一般情况下Scala的类只能够继承单一父类,但是如果是 Trait(特征) 的话就可以继承多个,从结果来看就是实现了多重继承。
trait
scala中的var 和val
1:内容是否可变:val修饰的是不可变的,只读,var修饰是可变的 可读可写
2:val修饰的变量在编译后类似于java中的中的变量被final修饰
3:lazy修饰符可以修饰变量,但是这个变量必须是val修饰的
ps:lazy相当于延迟加载(懒加载),当前变量使用lazy修饰的时候,只要变量不被调用,就不会进行初始化,什么时候调用,什么时候进行初始化