我在我的代码中有以下逻辑:

if !@players.include?(p.name)
  ...
end

@players是一个数组。有什么方法可以让我避免!?

理想情况下,这个代码片段应该是:

if @players.does_not_include?(p.name)
  ...
end

当前回答

使用,除非:

unless @players.include?(p.name) do
  ...
end

其他回答

试试这样做:

@players.include?(p.name) ? false : true

使用,除非:

unless @players.include?(p.name) do
  ...
end

给你:

unless @players.include?(p.name)
  ...
end

您可以查看Ruby Style Guide以获得有关类似技术的更多信息。

下面这个怎么样:

unless @players.include?(p.name)
  ....
end
module Enumerable
  def does_not_include?(item)
    !include?(item)
  end
end

好吧,但说真的,除非是可以的。