是否存在检测谓词方法与三元运算符组合的Rubocop cop?
谓词方法与三元运算符的代码格式问题
我认为把Ruby里按约定以问号结尾的谓词方法,和三元运算符结合使用很容易造成混淆。这种写法属于不良格式,核心问题是会出现双问号的情况,可读性大打折扣:
# 返回 `true` 或 `false` def predicate? # ... end boolean? ? <truthy branch> : <falsy branch>
以下两种写法更合理,能完全避免上述问题:
写法一:使用if-else语句
# `predicate?` 是上述相同的方法 if predicate? <truthy branch> else <falsy branch> end
写法二:用不带问号的局部变量搭配三元运算符
# 此处 `predicate` 是局部变量 predicate ? <truthy branch> : <falsy branch>
我希望用代码检查工具自动检测这种不良格式,想问:
- 是否有现成的Rubocop Cop可以检测这种场景?
- 如果没有,该如何实现?
我自己搜索过,但没找到对应的Cop。
内容的提问来源于stack exchange,提问作者lovet
相关产品推荐
相关产品推荐

