Scala基于jvm,基础语法与java大不相同。先看看最基础的声明一个数值。
Scala用val来声明常量,var来声明变量。至于具体类型,Scala比较聪明,他可以自动识别数据类型。
val a=1
顺便提一下Scala并不需要分号作为语句结尾,当然如果你习惯加分号也无所谓。有些情况下我们还是要自己去声明类型的。上面语句用c语言来写就是:
int a=1
但是Scala识别不了这种形式,在Scala中这句话应该这么写:
val a:Int =1
也不知道是不是函数式编程的特性,Scala里面把一切变成了对象,例如这样:
1.toString()
在c语言中自定义的标识名只能由数字字母和下划线组成,但是Scala不一样,它不会在意这些,来看这个:
a+b
这是个很普通的表达式然而这句话和c语言中同样的语句完全不一样,这是个缩写,我们来看全写:
a.+(b)
很明显a调用了一个叫+的方法,从这里我们可以看出Scala调用方法除了常规的对象.方法(参数)之外还可以这样写:
对象 方法 参数
值得注意的是Scala并没有++和--运算符。看样子开发Scala的工程师比较偷懒,没写这个方法。
Scala可以直接引用静态方法并不需要写类名,当然前提是你把包引入了,注意Scala中通配符是_而不是*:
import scala.math._
Scala用val来声明常量,var来声明变量。至于具体类型,Scala比较聪明,他可以自动识别数据类型。
val a=1
顺便提一下Scala并不需要分号作为语句结尾,当然如果你习惯加分号也无所谓。有些情况下我们还是要自己去声明类型的。上面语句用c语言来写就是:
int a=1
但是Scala识别不了这种形式,在Scala中这句话应该这么写:
val a:Int =1
也不知道是不是函数式编程的特性,Scala里面把一切变成了对象,例如这样:
1.toString()
在c语言中自定义的标识名只能由数字字母和下划线组成,但是Scala不一样,它不会在意这些,来看这个:
a+b
这是个很普通的表达式然而这句话和c语言中同样的语句完全不一样,这是个缩写,我们来看全写:
a.+(b)
很明显a调用了一个叫+的方法,从这里我们可以看出Scala调用方法除了常规的对象.方法(参数)之外还可以这样写:
对象 方法 参数
值得注意的是Scala并没有++和--运算符。看样子开发Scala的工程师比较偷懒,没写这个方法。
Scala可以直接引用静态方法并不需要写类名,当然前提是你把包引入了,注意Scala中通配符是_而不是*:
import scala.math._
sqrt(2)
在后来的阅读中我发现了书中的矛盾之处,上文刚提到静态方法,但是下文又说Scala没有静态方法,具体是个什么情况,我会在后面的学习中来解决这个问题