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?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage