Scala-函数
Scala 有函数和方法,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法
可以在任何地方定义函数,甚至可以在函数内定义函数(内嵌函数)
Scala 函数名可以有以下特殊字符:+, ++, ~, &,-, -- , \, /, : 等。
声明
def functionName([参数列表]) : [返回值类型]
定义
def functionName ([参数列表]) : [返回值类型] = {
// function body
return [expr]
}示例
// Code
object FunctionExample {
def main(args: Array[String]): Unit = {
println(addInt(1, 2))
}
def addInt(a:Int, b:Int) : Int = {
var sum:Int = 0
sum = a + b
return sum // 这里去掉 return 也可以
}
}
// Output
3函数传名调用和传值调用
Scala的解释器在解析函数参数(function arguments)时有两种方式:
传值调用(call-by-value):先计算参数表达式的值,再应用到函数内部
传名调用(call-by-name):将未计算的参数表达式直接应用到函数内部
调用时指定参数名
可变参数
默认参数值
闭包
闭包是一个函数
返回值依赖于声明在函数外部的一个或多个变量
最后更新于
这有帮助吗?