Scala 简明速学02 函数
变长参数
Scala中可以将函数参数定义为参数个数可变的形式,称为变长参数。
注意变长参数的类型实际为scala.collection.mutable.WrappedArray[T]
object variableLengthArgument {
def sum(nums: Int*): Int = {
//scala.collection.mutable.WrappedArray.ofInt
println(nums.getClass.getCanonicalName)
var sum = 0
for (num <- nums) {
sum += num
}
sum
}
def main(args: Array[String]): Unit = {
println(sum(1, 2, 3)) //参数为Range,为Sequence的子类型
println("============================")
val lst = 1 to 5 //类型为range
println(sum(lst: _*))//Range转为Sequence,这样才可以在调用中应用可变参数
println(sum(1 to 5: _*))
}
}
过程
Scala中定义函数时,如果没有使用=连接,则函数的返回值类型为Unit。将函数的返回类型为Unit的函数称之为过程。
package com.random.scala.t1
object FunctionReturnUnit {
def f1 {
println("f1")
}
def f2() {
println("f2")
}
def f3(): Unit = {
println("f3")
}
def main(args: Array[String]): Unit = {
f1
f2()
f2
f3()
f3
}
}
网友评论