Ruby方法参数与Proc对象深入解析
1. 括号使用中的歧义问题
在 Ruby 编程里,一些表达式可能存在歧义,比如下面这个:
puts(sum 2,2)
此表达式会引发警告,因为我们无法明确它的意图是 puts(sum(2,2)) 还是 puts(sum(2), 2) 。为解决这一歧义,有两种办法:
- 给 sum 方法的参数加上括号。
- 在 puts 和左括号之间添加一个空格,像这样:
puts (sum 2,2)
添加空格后,方法调用的括号就变成了表达式分组括号。由于这些括号将子表达式分组,逗号就不能再被解释为 puts 调用的参数分隔符了。
2. 方法参数详解
2.1 参数默认值
定义方法时,可为部分或全部参数指定默认值。若如此,调用方法时可传入比声明的参数数量更少的参数值。若省略某些参数,将使用该参数的默认值。通过在参数名后加上等号和值来指定默认值,示例如下:
def prefix(s, len=1)
s[0,len]
end
这个方法声明了两个参数,但第二个参数有默认值。这意味着我们可以用一个或两个参数来调用它:
Ruby方法参数与Proc详解
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



