我在我的代码中有以下逻辑:
if !@players.include?(p.name)
...
end
@players是一个数组。有什么方法可以让我避免!?
理想情况下,这个代码片段应该是:
if @players.does_not_include?(p.name)
...
end
我在我的代码中有以下逻辑:
if !@players.include?(p.name)
...
end
@players是一个数组。有什么方法可以让我避免!?
理想情况下,这个代码片段应该是:
if @players.does_not_include?(p.name)
...
end
当前回答
使用,除非:
unless @players.include?(p.name) do
...
end
其他回答
试试这个,它是纯Ruby,所以不需要添加任何外围框架
if @players.include?(p.name) == false do
...
end
我在类似的逻辑中挣扎了几天,在查看了几个论坛和问答板后,结果发现解决方案实际上非常简单。
下面这个怎么样:
unless @players.include?(p.name)
....
end
module Enumerable
def does_not_include?(item)
!include?(item)
end
end
好吧,但说真的,除非是可以的。
我自己查了一下,发现了这个,然后找到了解。人们使用令人困惑的方法,有些方法在某些情况下不起作用,或者根本不起作用。
我知道现在太晚了,因为这是6年前发布的,但希望未来的访问者能找到它(希望它能清理他们和你的代码)。
简单的解决方案:
if not @players.include?(p.name) do
....
end
给你:
unless @players.include?(p.name)
...
end
您可以查看Ruby Style Guide以获得有关类似技术的更多信息。