Scala之旅-函数详解

来源:互联网 发布:常州骏飞网络 编辑:程序博客网 时间:2024/05/16 19:47

1.Scala的函数默认都有返回,Unit类似C#里面的void

def funtion(): Unit ={        //do something    }

以上的无返回值函数可以简写和C#类似

def Funtion(){        //do something    }


2.基于简洁的追求,Scala可以偷懒的地方就 ,如下是带返回值的3个等价函数

  def addA(x:Int):Int={x+100}  def addB(x:Int)=x+100 //上面的简写  var addC=(x:Int)=>x+100 //这个类似于Lamda

3.递归函数必须声明其返回值的类型,如下面的阶乘

def fac(n:Int):Int=if(n>1) n*fac(n-1) else 1


4.带默认参数的函数,和C#类似

def combine(str1:String,str2:String="I",str3:String="love")=str2+" "+str3+" "+str1

5.可变参数函数和C#中的param类型类似,下面是求1-5的和

 def sum(args:Int*)={    var result=0    for(arg<-args)result+=arg    result  }    def main(args:Array[String]){    println(sum(1,2,3,4,5))    //println(sum(1 to 5:_*))同上  }

6.lazy关键字,延迟加载 类似于EF框架的延迟查询。用的时候才会去实例化

 lazy val file=Source.fromFile("d:\\t1.txt")        for(line<-file.getLines()){            println(line)        }
如:file若为空,你不使用file的时候是不会报错的


0 0
原创粉丝点击