用参数重构 ruby 条件
Refactor ruby condition with params
我想知道 ruby
中是否有更简单的方法来完成此条件
我的情况:
a = params[:smth].to_s == 'foo' ? 'foo2' : params[:smth].to_s
那个条件的问题,reek throw warning of using params[:smth]
2 times,有一种可能将 params[:smth]
赋值给变量,但也许你知道更聪明的方法?
我可能会这样写:
a = params[:smth].to_s
a = 'foo2' if a == 'foo'
您可以为此使用 lambda。 不过之前设置变量是最好的方法
像这样:
p =->(s){s == 'foo' ? 'foo2' : s}
params = {smth: 'foo'}
a = p.(params[:smth].to_s)
# => "foo2"
params = {smth: 'bar'}
a = p.(params[:smth].to_s)
# => "bar"
我想知道 ruby
中是否有更简单的方法来完成此条件我的情况:
a = params[:smth].to_s == 'foo' ? 'foo2' : params[:smth].to_s
那个条件的问题,reek throw warning of using params[:smth]
2 times,有一种可能将 params[:smth]
赋值给变量,但也许你知道更聪明的方法?
我可能会这样写:
a = params[:smth].to_s
a = 'foo2' if a == 'foo'
您可以为此使用 lambda。 不过之前设置变量是最好的方法
像这样:
p =->(s){s == 'foo' ? 'foo2' : s}
params = {smth: 'foo'}
a = p.(params[:smth].to_s)
# => "foo2"
params = {smth: 'bar'}
a = p.(params[:smth].to_s)
# => "bar"