Scala学习(二)函数入门

发布时间 2023-10-12 15:15:28作者: 董振

一、基础知识

1、定义 函数名 参数 函数体

 返回值age自动判断为int类型

2、只要函数体不包含递归语句,scala就可以推断出返回类型

3、如果是单行函数,可以省略{}。如 def sayHello(name: String ,age: Int) = printf("haha"+name)

4、如果需要返回类型:sayHello(name: String): Int{xxx}

二、默认参数和带名参数

1、默认参数 :def sayHello(name: String="zhangsan")=printf("name="+name)

如果name不传值,默认为zhangsan

2、带名参数:def sayName(first: String,second: String)=printf("name="+first+second)

      使用时:sayName("zhangsan",second="lisi")

3、变长参数:def sum(nums: Int*)={

    var result=0;

    for(num<- nums){

      result+=num;    

    }

    result

    }

  运行 sum(1,2,3)返回6

4、使用序列调用变长参数

  sum(1 to 5: _*)

   1 to 5是一个数组类型,_*会将数组转为函数入参的类型序列值

三、过程、lazy值和异常

过程即没有返回值的函数,有两种定义方式:函数名后不用=连接{},或将返回值类型定义为Unit

lazy var line=fromFile("xxx");此时代码不会读取文件内容,只要在使用时才会真正执行。

异常处理: