我在我的代码中有以下逻辑:
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
当前回答
module Enumerable
def does_not_include?(item)
!include?(item)
end
end
好吧,但说真的,除非是可以的。
其他回答
module Enumerable
def does_not_include?(item)
!include?(item)
end
end
好吧,但说真的,除非是可以的。
这不是一个单一的方法,但链接计数和零工作:
[1, 2, 3].count(1).zero? # => false
[1, 2, 3].count(4).zero? # => true
它也适用于字符串:
"hello".count("l").zero? # => false
"hello".count("q").zero? # => true
使用,除非:
unless @players.include?(p.name) do
...
end
使用unless可以用于包含单个include的语句?子句,但是,例如,当你需要检查一些东西是否包含在一个数组中,而不是另一个数组中,使用include?排除?友好多了。
if @players.include? && @spectators.exclude? do
....
end
但是正如dizzy42上面所说的,exclude的使用?需要ActiveSupport这样
如果你对!-操作符的反对主要是它需要放在你的检查符前面,这会破坏你的输入流程,那么就有。!方法。你只需要把它放在check之后来反转布尔值:
if @players.include?(p.name).!