Warum macht .all? auf einem leeren Array true zurückgeben?
Mit Ruby möchte ich alle Elemente in einem Array auswerten und true zurückgeben, wenn sie alle einen bedingten Test bestehen.
Ich kann dies tun, indem ich z.array.all? { |value| value == 2 }
So:
> array=[2,2]
> array.all? { |value| value == 2 }
=> true
> array=[2,3]
> array.all? { |value| value == 2 }
=> false
Großartig!
Aber warum besteht ein leeres Array diesen Test?
> array=[]
> array.all? { |value| value == 2 }
=> true
Sollte das nicht falsch sein?
Und wenn ich es brauche, um false zurückzugeben, wie soll ich die Methode ändern?