为了账号安全,请及时绑定邮箱和手机立即绑定

Scala菜鸟的进阶之路之控制结构和函数(四)

标签:
大数据

1、我们在调用某些函数时并不显式地给出所有参数,对于这些函数我们可以使用默认参数。例如:


webp

这个函数有两个参数,left和right,带有默认值"["和"]"


webp

使用默认参数的例子


webp

可以自定义参数的值


webp

如果相对参数的数量,你给出的值不够,默认参数会从后往前逐个应用进来

webp

也可以在提供参数值的时候指定参数名。注意带名参数并不需要跟参数列表顺序完全一致。带名参数可以让函数更加可读。它们对于那些有很多默认参数的函数来说也很有用。


webp

可以混用未命名参数和带名参数,只要那些未命名的参数是排在前面的即可:

变长参数


1、变长参数函数:

webp

可以使用任意多的参数来调用该函数

webp


2、如果你已经有一个值的序列,则不能直接将它传入上述函数。举个错误的例子:


webp

   如果sum函数被调用时传入的是单个参数,那么该参数必须是单个整数,而不是一个整数区间。

   解决这个问题的办法是告诉编译器你希望这个参数被当作参数序列处理。追加: _*

举个例子:


webp

   在递归定义中我们会用到上述语法:

webp

在这里,序列的head是它的首个元素,而tail是所有的其他元素的序列,这又是一个Seq,我们用
_*  
来将它转换成参数序列


3、当你调用边长参数且参数类型为Object的Java方法,如PrintSteam.printf 或 MessageFormat.format时,你需要手工对基本类型进行转换。例如:


webp

对于任何Object类型的参数都是这样,类似的参数在边长参数方法中使用报的最多



作者:独行者独行者
链接:https://www.jianshu.com/p/8c06c7f62235


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消