4

如何简化这个表达式?

m.immutable = params[:immutable] || false

RubyMine 建议:“可以简化表达式。此检查警告布尔函数中的冗余部分”,但没有说明要做什么。

这个想法是如果“不可变”参数没有传递,则分配 false。

4

2 回答 2

2

只需单击 Alt+Enter 即可显示 RubyMine

m.immutable = params[:immutable]

在某些情况下,这可以帮助您,但如果您没有传递参数,那么 immutable 将为零,这可能不是您所期望的

于 2013-04-03T16:16:06.610 回答
1

这是实现此目的的更好方法:

m.immutable = !! params[:immutable]

Using!!是一种 Ruby 技巧,可确保将表达式转换为布尔值。例如,即使params[:immutable]计算结果为nil!!也会将其转换为false-- 否则它将是true

于 2018-08-22T19:11:11.470 回答