Scala之旅-函数详解
2015-10-03 21:27
302 查看
1.Scala的函数默认都有返回,Unit类似C#里面的void
以上的无返回值函数可以简写和C#类似
2.基于简洁的追求,Scala可以偷懒的地方就 ,如下是带返回值的3个等价函数
3.递归函数必须声明其返回值的类型,如下面的阶乘
4.带默认参数的函数,和C#类似
5.可变参数函数和C#中的param类型类似,下面是求1-5的和
6.lazy关键字,延迟加载 类似于EF框架的延迟查询。用的时候才会去实例化
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的时候是不会报错的
相关文章推荐
- WCF安全 z
- android 与 小米1S刷机学习
- Javascript - IE8下parseInt()方法的取值异常
- hdoj 5495 LCS 【统计元素个数大于1的置换群数目】【LCS变形】
- 信息安全系统设计基础第三周学习总结
- iOS开发多线程篇—线程安全
- php连接mysql
- Java 数组
- hdoj 5494 Card Game 【水题】
- C语言实现密码输入
- POJ 2239 Selecting Courses
- ADT的安装
- 调整食速派店铺风水布局
- Android----Error:Unable to start the daemon process:错误
- Hive笔记二:安装和配置
- Java设计模式之代理模式
- android中如何将图片变为圆角
- iOS多线程学习
- UVA - 489 Hangman Judge
- 翻转链表