Это работает, как я ожидаю, возвращая true
:
['a', 'b', 'c', 'd', 'e'].include? 'e'
Это также работает, как я ожидал, также возвращает true
:
x = %w('a b c d e')
x.include? 'e' # => true
Но это не работает, как я ожидаю, возвращая false
:
%w('a b c d e').include? 'e'
Самой странной частью этого является то, что либо первое, либо последнее значение возвращает false
, а внутренние значения возвращают true
. Я пробовал это с строками от трех до пяти символов, с тем же результатом.
Почему?
Редактировать: iGian попросил меня проверить, действительно ли x.include? 'e'
оценивается как true
. Это не так. Теперь я вижу, когда я пытался это сделать, я не помещал символы в кавычки! Я думаю, что мне нужно увеличить размер шрифта экрана или получить новые очки. Итак, значения в %w ('a b c')
равны 'a
, b
и c'
. Это прекрасно объясняет, почему я получаю поведение, которое нахожу.