文章永久连接:https://tech.souyunku.com/3027
通常情况下 调用函数 传递参数,按照函数定义时的参数顺序一个个传递。
但有时参数太多,我们不能一一指定下去, 或者,有些参数值就是定义时的默认值,写一遍很浪费时间,那么我们就可以通过指定函数参数名来实现。
这种参数传递的方式并且不需要按照顺序向函数传递参数。
程序员一般都很懒,总是在节省时间
没有默认值的参数是必须传递
object Test {
def main(args: Array[String]) {
printInt(b=5, a=7);
println()
printInt(c=18,a=16)
}
def printInt( a:Int, b:Int=21, c:Int=8) = {
println("Value of a : " + a );
println("Value of b : " + b );
println("Value of c : " + c );
}
}
上面代码执行结果为:
Value of a : 7
Value of b : 5
Value of c : 8
Value of a : 16
Value of b : 21
Value of c : 18
最佳实战
一般情况下不要打乱参数的传递顺序,没有默认值的参数最好不要通过制定参数名来传递,防止团队协作出问题
干货推荐
附录:Scala 教程:系列文章
- 一、Scala 教程: 教程
- 二、Scala 教程: 简介
- 三、Scala 教程: 安装
- 四、Scala 教程: 基础语法
- 五、Scala 教程: 数据类型
- 六、Scala 教程: 中文乱码解决
- 七、Scala 教程: 变量
- 八、Scala 教程: 访问修饰符
- 九、Scala 教程: 运算符
- 十、Scala 教程: if…else 语句
- 十一、Scala 教程: 循环
- 十二、Scala 教程: 函数
- 十三、Scala 教程: 闭包
- 十四、Scala 教程: 字符串
- 十五、Scala 教程: 数组
- 十六、Scala 教程: Collection
- 十七、Scala 教程: Iterator(迭代器)
- 十八、Scala 教程: 类和对象
- 十九、Scala 教程: Trait(特征)
- 二十、Scala 教程: 模式匹配
- 二十一、Scala 教程: 正则表达式
- 二十二、Scala 教程: 异常处理
- 二十三、Scala 教程: 提取器(Extractor)
- 二十四、Scala 教程: 文件 IO
- 二十五、Scala 教程: do…while 循环
- 二十六、Scala 教程: 函数 – 默认参数值
- 二十七、Scala 教程: 高阶函数
- 二十八、Scala 教程: 函数嵌套
- 二十九、Scala 教程: Map(映射)
- 【当前读到】三十、Scala 教程: 指定函数参数名
- 三十一、Scala 教程: 偏应用函数
- 三十二、Scala 教程: 匿名函数
- 三十三、Scala 教程: 元组
- 三十四、Scala 教程: 函数传名调用(call-by-name)
- 三十五、Scala 教程: 递归函数
- 三十六、Scala 教程: Set(集合)
- 三十七、Scala 教程: 函数柯里化(Currying)
- 三十八、Scala 教程: 函数 – 可变参数
- 三十九、Scala 教程: Option(选项)
- 四十、Scala 教程: do…while 循环
- 四十一、Scala 教程: while 循环
- 四十二、Scala 教程: List(列表)
- 四十三、Scala 教程: break 语句