全称Read-Eval-Print-Loop,是一种交互式解释器环境,Node.js、Python、Scala等语言的安装包中都附带此种工具。
在Scala中,val关键字用来声明常量,var关键字用来声明变量。
val x, yval x, y = 100var greeting, message: String = ""Scala有八种基本类型:Byte、Char、Short、Int、Long、Float、Double、Boolean。
与Java不同的是,这些类型是真正意义上的类。
Scala不刻意区分基本类型和引用类,可以直接对数字执行方法,比如1.toString()。
Scala的编译器会自动转换基本类型与包装类。
Scala在进行+-*/%等操作符的时候,实际上在调用一个方法,例如a+b实际上是a.+(b)。
事实上,Scala的方法几乎可以是任何符号,并且可以缩写成a 方法 b的形式。
import math._Scala中的下划线等同于Java的*,在导入的时候做通配符用。
在使用以scala开头的包时,可以忽略scala前缀,无论是import时还是在使用时。
不带参数的Scala方法通常不使用圆括号,更一般的说,没有参数且不改变当前对象的方法不带圆括号。
方法和函数:这两者的区别表现在面向对象的编程中,方法与对象相关,方法中的数据是隐式传递的,可以操作类内部的数据,比如
person.eat()就是一个方法;而函数与对象无关,类似于min、max这种通用的函数。通俗点说,在Java中,它们就是普通方法与静态方法的区别。
在Scala中,"Hello"(4)将产出o,但实际上是调用了StringOps的apply方法,即等同于"Hello".apply(4)。
同样的,BigInt("123456789")可以不使用new关键字就创建一个BigInt对象,像这样使用伴生对象的apply方法来构建对象是Scala的常用手法。
可以前往http://www.scala-lang.org/api/current/浏览Scala的在线API文档。
Scala的在线文档中有许多使用实例而不仅仅是简单的类介绍,这对初学者非常有用。