1.变量声明
var 声明变量
val 声明常亮
定义元组 val pa = (40,"foo")
定义int 类型 var sum:Int = 0
2.函数声明
def funcName([参数列表]) :[return type] ={}
例如:
object add{
def addInt( a:Int, b:Int ) : Int = {
var sum:Int = 0
sum = a + b
return sum
}
}
如果函数没有返回值,则函数返回 Unit,相当于 void
Scala的解析器在解析函数参数有两种方式:
传值调用 : 先计算参数表达式的值,再应用到函数内部
传名调用 : 将未计算的参数表达式直接应用到函数内部
函数传可变的参数
def printStrings( args:String* )
具体例子如下:
object Test {
def main(args: Array[String]) {
printStrings("Runoob", "Scala", "Python");
}
def printStrings( args:String* ) = {
var i : Int = 0;
for( arg <- args ){
println("Arg value[" + i + "] = " + arg );
i = i + 1;
}
}
}
匿名函数,可以简化函数,具体如下:
object Demo {
def main(args: Array[String]) {
println( "multiplier(1) value = " + multiplier(1) )
println( "multiplier(2) value = " + multiplier(2) )
}
var factor = 3
val multiplier = (i:Int) => i * factor
}
递归算法求 x的n次方
def colxn(x:Double;n:Int):Double ={
if(n==0){
1
}
else if(n <0){
1/colx(x,-n)
}
else if(n%2 ==0){
colxn(x,n/2)*colxn(x,n/2)
}
else
x*colx(x,n-1)
}
产生随机数
val rand=new Random();
rand.nextInt(100);//nextInt 产生0-100的随机整数,但不包括100