标签:形式 stream array rgs 类型 str 特殊 含义 填充
1.重复参数
要表示这样一个重复参数,需要在参数的类型之后加上一个星号(*)。
def main(args: Array[String]): Unit = {
echo("hello", "world!")
}
def echo(args: String*) = {
for (arg <- args) println(arg)
}
在函数内部,这个重复参数的类型是一个所声明参数类型的Array。但是不能直接将当做重复参数传入,需要在数组实参后面加上冒号和一个_*符号
def main(args: Array[String]): Unit = {
val arr = Array("What‘s", "up", "doc?")
//echo(arr) 类型不符
echo(arr: _*)
}
def echo(args: String*) = {
for (arg <- args) println(arg)
}
2.带名字的参数
用带名字的参数发起调用,实参可以在不改变含义的前提下交换位置。
def main(args: Array[String]): Unit = {
val sp = speed(time = 10, distance = 100)
println(sp)
}
def speed(distance: Float, time: Float) = distance / time
3.缺省参数值
有缺省值的参数可以不出现在函数调用中。
def main(args: Array[String]): Unit = {
printTime()
}
def printTime(out: java.io.PrintStream = Console.out) = {
out.println("time = " + System.currentTimeMillis())
}
缺省参数跟带名字的参数放在一起时尤为有用。
def main(args: Array[String]): Unit = {
//显式地给出输出流,时间除数填充为默认值
printTime2(out = Console.err)
//显式地给出时间除数,输出流填充为默认值
printTime2(divisor = 1000)
}
def printTime2(out: java.io.PrintStream = Console.out, divisor: Int = 1) = {
out.println("time = " + System.currentTimeMillis() / divisor)
}
标签:形式 stream array rgs 类型 str 特殊 含义 填充
原文地址:https://www.cnblogs.com/noyouth/p/14056135.html