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
}
}