Scala 默认参数值、命名参数

默认参数值


Scala提供了给参数设置默认值的机制,这样,便可以令调用者在调用方法时省略这些参数。

# 定义具有默认参数的方法
def log(kkk:String, iii:String="GG")=println(s"$kkk $iii")

# 忽略具有默认值的参数
log("hhhhhhh")

如果调用者省略了某一参数,那么此参数之后的参数需要指定名称。

def lll(kkk:String = "GG", ggg:String) = println(s"$kkk $ggg")
lll(ggg="uuuu")

注意,当Scala方法被Java代码调用时,Scala中的具有默认值的参数并不是可选的。

命名参数


当调用方法时,可以使用参数名称标记参数。借此机制,可以乱序传参。

def num(a:String, b:String, c:String, d:String) = println(s"$a $b $c $d")
num("aaa", "bbb", "ccc", "ddd")
num(b="bbb", a="aaa", d="ddd", c="ccc")

当部分参数被命名,部分参数没有被命名时,未命名参数应当放在命名参数之前,并且传参的结果将会遵照方法签名中的参数的顺序。

num("aaa", d="ddd",b="bbb", c= "ccc")

注意,命名参数不能用于调用Java方法。

翻译源:Scala Tour

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值