1.函数的定义和使用
def minValue(a: Int,b: Int) : Int = { if (a > b) b else a }也可写成如下格式
def minValue(a: Int,b: Int) = if (a > b) b else a实例: 用Scala函数进行基础四则运算
def add(a: Int,b: Int,c: String) = if (c.equals("+")) a+b else if (c.equals("-")) a-b else if (c.equals("*")) a*b else a/b println (add(10,20,"+"))运行结果如下
2.通过指定参数名字,传递参数值
def showMsg (name: String,agr: Int) : Unit = { println("Hello:" + name + " age:" + age) } showMsg("kb09",3) showMsg(age = 18,name = "zhangsan")运行结果如下
3.参数的长度未知,通过*来表示,可以传入多个参数
def showMsg2 (name: String,s: String*) : Unit = { println(name) for (str <- s) { println(str) } } showMsg2("kb09","东海","南山")运行结果如下
4.匿名函数 匿名函数指不含函数名称的函数 语法 箭头左边是参数列表,右边是函数体,参数的类型是可省略的,Scala 的类型推测系统会推测出参数的类型。 实例1
val aa = (a: Int,b: Int) => a+b val dd = aa println(aa(1,2)) println(dd(3,4))运行结果如下
实例2
val a : Int = 10 val sum1 : (Int,Int) => Int = (a: Int,b: int) => a+b println(sum1(1,3))运行结果如下
5.将函数作为参数进行传递
def fun (a: Int,b: Int) : Int = a+b def fun1 (a: Int,b: Int) : Int = a-b def fun2 (a: Int,b: Int) : Int = a*b def funTest (f: (Int,Int) => Int,s:String) : String = { val resultValue = f(1000,2000) s + resultValue } println(funTest(fun2,"hello")) println(funTest((a: Int,b: Int) => 2 * a + 3 * b,"abc"))运行结果如下
6.函数作为返回值
def funTest2() : (String,String) => String = { def fun2(str1: String,str2: String) : String = { str1 + "##" + str2 + "&&" } fun2 } var strValue = funTest2()("aa","bb") println(strValue)运行结果如下