【scala】定义变量和函数
1.定义变量
Scala的变量分为两种,val和var。
val跟java的final变量类似,一旦初始化就不能被重新赋值。
var类似于java的非final变量,在整个生命周期内var可以被重新赋值。
示例
var greeting :String = “hello world!”;
Scala并不是和java一样在变量名之后给出类型,而是在变量名后,变量名和类型之间用冒号(:)隔开。
我们还可以这样写
var greeting = “hello world!”;
这里并没有声明变量的类型,因为Scala具有类型判断的能力,可以不显式指定类型。
2.定义函数
函数定义由def开始,然后是函数名和圆括号中以逗号隔开的参数列表。
函数名 参数列表 返回结果类型
def max (x :Int , y :Int ) : Int = {
//函数内容
}
如果函数只有一条语句,也可以选择不是使用花括号。
def max (x:Int,y:Int)= if(x<y)x else y
下面是不接收任何参数也不返回任何有意义的结果的函数
def greet() = println(“hello world”);
返回结果是Unit,类似于java中的void,表示该函数并不返回任何由实际意义的结果。
3.函数式编程风格
Scala允许采用指令式编程,但是鼓励采用函数式编程风格。
两种编码风格有什么差异呢?
一个显著性的标志式如果代码包含任何var变量,它通常是指令风格的,比如JAVA C++ C
而代码完全没有var,只包含了val,那么它可能是函数式的。
例如
def printArgs(args:Array[String]):Unit { var i = 0; while(i<args.length){ println(args(i)); i+=1; } } //这个是典型的指令式编程 //我们可以去掉上述代码中的var,转换成函数式编程 def printArgs(args:Array[String]):Unit { for(arg<-args) println(arg); }
使用函数式编程跟指令式编程相比较,更清晰精简,也更少出错。
但是Scala并没有强制你去使用函数式风格来编程,Scala式指令式/函数式混合类型的语言。