scala:scala基础
安装scala运行解释器
下载scala,解压,配置SCALA_HOME
到解压目录,将$SCALA_HOME/bin
加入PATH
vim /etc/profile
export SCALA_HOME=/opt/scala-2.11.8
export PATH=SCALA_HOME/bin:$PATH
命令行执行scala
打开scala解释器。
声明变量
声明常量用val,无法改变常量值;
声明变量用var。
scala> val a,b = 1
a: Int = 1
b: Int = 1
//除非必要否则不要用var
//除非一行需要写多个语句,否则行尾可以不加分号";"
声明变量不用指明类型,因为类型会根据赋值语句自动确定,因此必须在声明的时候为变量赋值。
也可以强制指明声明变量的类型:
val greeting:String=null
val d:Double=1
定义函数方法
声明方法用def
。
def f(s:String):Int = {
print(s+" ")
100
}
print(f("abc"))
//输出abc 100
方法的返回值类型可以不写,方法能自动确定(递归方法除外)。
方法名和方法体后要用=
连接,否则方法返回值为()
,相当于void
,()
是Unit
类型的唯一值。
因为花括号语句块有返回值(即最后一个语句的值),所以方法返回值不用return
语句。
若无参方法定义时候方法名后面没写括号,则调用时也不能写括号,否则报错。
方法调用
1.toString //不带参数且不改变当前对象的方法不带圆括号
1.toString()
1.to(2)
1 to 2
scala中运算符全是方法名,如2+4
相当于2.+(4)
取数组中指定位置的元素:
scala> "hello"(1) //这是scala中apply方法的调用,相当于"hello".apply(1)
res37: Char = e
有些类的伴生对象有apply
方法,就可以不用new
操作符获得这个类的对象,如:
BigInt("123")
Array(1,2,4)
引入包
scala引入scala.math
包(里面有常用的数学方法,如平方根方法sqrt
)
import math._
//引入scala.开头的包
//scala.可以省略
//_为通配符相当于Java中的*