为什么Rubocop / community-driven Ruby style guide在方法定义中推荐使用括号?
def my_method(param1, param2)
end
# instead of
def my_method param1, param2
end
根据具体情况,允许使用括号或不使用括号进行方法调用。但是,我的第一印象是,方法调用中缺少括号比方法定义中缺少括号更可能模糊。是否有背后的原因,例如使代码更加万无一失,或者是因为“历史原因”或“因为它是最普遍的风格”而发生的?
澄清:
我不是在询问哪种风格更容易阅读。
lint Lint/AmbiguousOperator
基于do_something *some_array
含糊不清且错误来源(Link)的想法。我想知道Style/MethodDefParentheses
(Link)的情况是否相同。
回过头来找到那些警察的实际名字之后,我现在最好的猜测是没有“技术”原因,而是一个是正确的“lint”而另一个是“风格”问题。
答案 0 :(得分:2)
initial commit中省略了该基本原理,其中该规则是其中的一部分,表明没有特定的技术原因。
相应警察放在const gm = require('gm').subClass({imageMagick: true})
部门而不是Style
这一事实进一步证明了这只是风格的问题。
方法定义的语法非常简单。 Lint
关键字(可选)后跟参数,后跟必须跟一个终结符(换行符或def
)。
可能的变化是:
;
,所有这些都可以在有括号和无括号的情况下正常工作。此外,使用private
标志运行带有未加括号的方法定义的文件不会引发警告。
这些因素共同排除了建议使用括号以避免歧义的可能性。