Там - это не , но вы можете создать один из них, используя способ очистки:
a = [0,2,1,0,3]
module Enumerable
def first_not(&block)
find{ |x| !block[x] }
end
end
p a.first_not(&:zero?)
#=> 2
... или ужасно забавный способ взлома:
class Proc
def !
proc{ |o,*a| !self[o,*a] }
end
end
p a.find(&!(:zero?.to_proc))
#=> 2
... или кратко, но ужасно опасный способ:
class Symbol
def !
proc{ |o,*a| !o.send(self,*a) }
end
end
p a.find(&!:zero?)
#=> 2
Но я бы выступил за то, чтобы просто пропустить хитрое использование Symbol#to_proc
и сказать, что вы хотите:
p a.find{ |i| !i.zero? }
#=> 2