是否有包含的对立面? 对于Rubyarrays?
我的代码中有以下逻辑:
if !@players.include?(p.name) do ... end   @players是一个数组。 有没有一种方法,所以我可以避免!  ? 
理想情况下,这个片段将是:
 if @players.does_not_include?(p.name) do ... end 
	
 if @players.exclude?(p.name) do ... end 
  ActiveSupport添加exclude? 方法到Array和String 。 这不是纯粹的Ruby,而是被大量的ruby使用者所使用。 
干得好:
 unless @players.include?(p.name) ... end 
你可能会看看Ruby风格指南了解更多类似技术的信息。
 module Enumerable def does_not_include?(item) !include?(item) end end 
好的,但是,严格的,除非工作正常。
怎么样:
 unless @players.include?(p.name) do .... end 
除非使用。
 unless @players.include?(p.name) do ... end 
 使用unless包含单个语句的罚款include? 子句,但是,例如,当你需要检查一个Array包含的东西,而不是在另一个,使用include?  exclude? 更友好。 
 if @players.include? && @spectators.exclude? do .... end 
 但是正如上面的dizzy42所说,使用exclude? 需要ActiveSupport 
尝试这样的事情:
 @players.include?(p.name) ? false : true 
试试这个,它是纯粹的Ruby,所以不需要添加任何外围框架
 if @players.include?(p.name) == false do ... end 
我在一个类似的逻辑上挣扎了好几天,在检查了几个论坛和问答板之后,结果很简单。