scala 初始

来源:互联网 发布:苹果 知乎 编辑:程序博客网 时间:2024/06/03 22:05

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 = 3val 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