私のコードには次のロジックがあります。
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
if @players.exclude?(p.name)
...
end
ActiveSupport は、、、およびにexclude?
メソッドを追加します。これは純粋な Ruby ではありませんが、多くの rubyist によって使用されています。Array
Hash
String
以下はどうでしょう。
unless @players.include?(p.name)
....
end
module Enumerable
def does_not_include?(item)
!include?(item)
end
end
わかりましたが、真剣に、unless は正常に動作します。
使用unless
:
unless @players.include?(p.name) do
...
end
unless
単一の句を含むステートメントには使用しても問題include?
ありませんが、たとえば、ある句に何かが含まれているかどうかを確認する必要がある場合は、 with をArray
使用するとはるかに使いやすくなります。include?
exclude?
if @players.include? && @spectators.exclude? do
....
end
ただし、dizzy42 が上で述べているように、の使用にexclude?
は ActiveSupport が必要です。
次のようなことを試してください:
@players.include?(p.name) ? false : true