秉着简洁而不失完整的的原则,这章只把Scala主要语法和与Java不一样的内容列出来,之后章节也如此,内容以简洁为主,太长了本身都被吓着了,也没耐心看下去。 java
1.Scala解释器使用,这里不作介绍,有IDE这玩意通常用不着。 函数
2.基本数据类型 性能
Java原始类型在scala包里都有对应的类。例如,scala.Boolean对应着Java的boolean。scala.Float对应着Java的float。当你把你的Scala代码编译成Java字节码,Scala编译器将使用Java的原始类型以便得到其带来的性能益处。 学习
3.定义变量 spa
Scala有两种变量,val和var。val相似于Java里的final变量。一旦初始化了,val就不能再赋值了。与之对应的,var如同Java里面的非final变量。var能够在它生命周期中被屡次赋值。 .net
val msg1=”hello scala” var msg2=”hello world”
仔细看上面定义的2个变量好像都没有类型声明,这是怎么回事呢?这就要说到Scala的类型推断(type inference),由于你用了一个字符串来初始化msg变量,Scala推断msg的类型是String。你也能够显式地定义类型,有些时候也应该这么作。显式的类型标注不但能够确保Scala编译器推断你倾向的类型,还有助于之后代码的阅读。 scala
val msg : String=”hello scala” 与Java不一样的是类型声明在变量后面,用一个”:”分隔。
4.定义函数 code
上面已经定义了变量,如今开始学习怎么定义一个函数 生命周期
def max(x: Int, y: Int): Int = { //定义函数 if (x > y) x else y } max(3,7) //调用函数
本身对照看与 java函数有什么不一样,函数体只有一句的大括号能够省略写成 : 字符串
def max(x: Int, y: Int) = if (x > y) x else y
结果类型也去掉了,编译器类型推断可得出,尽管如此带上结果类型也是一个好习惯,便于其余人阅读代码。
Scala的Unit结果类型指的是函数没有返回有用的值。Scala的Unit类型比较接近Java的void类型,并且实际上Java里每个返回void的方法都被映射为Scala里返回Unit的方法。所以结果类型为Unit的方法,仅仅是为了它们的反作用而运行
注:java里的i++和++i在scala里是行不通的。