Почему пустой элемент равен «пустой душе» - PullRequest
0 голосов
/ 13 июня 2019

У меня есть следующий фрагмент кода рубина

[].all? { | item | item == 'empty soul' }
=> true

Я ожидаю, что это будет false

Ответы [ 2 ]

3 голосов
/ 13 июня 2019

Потому что так работает математика.

∀x ∈ X: p(x)

- это то же самое, что

¬∃x ∈ X: ¬p(x)

Или в Ruby:

friends.all?(&:insane?)

- то же самоекак:

!friends.any? { |friend| !friend.insane? }

Или по-человечески:

Все мои друзья безумны.

- это то же самое, что и

У меня нет друга, который не безумен.


Все вышеперечисленное все равно эквивалентно, даже в угловом случае, когда я не делаюесть друзья.

1 голос
/ 13 июня 2019

Потому что у вас нет предметов.Ни один из ваших предметов не возвращает значение фальси (false или nil).Если это не так, вы можете попробовать

items.any? && items.all? { | item | item == 'empty soul' }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...