Их %w()синтаксис предназначен для использования в общем случае. В этом случае я бы рекомендовал использовать более подробный синтаксис ['a', ' ', 'b']. Более читабельный, менее удивительный для других программистов.
Благодарю. После вашего ответа я понимаю, как я могу это сделать. Я хотел именно это -% w (a \ bc) # => ["a", "", "b", "c"]
Василий Ермолович
4
Хотя это «правильный» ответ, он ужасно нечитабелен, что противоречит цели %w. Не делай этого.
тройник
Это вообще-то умный @VasiliyErmolovich. В Ruby есть всевозможные «уловки», и я всегда нахожу новые способы выразить вещи с помощью языка. Каким бы нечитабельным он ни казался, хорошо, что язык Ruby в первую очередь поддерживает синтаксис вашего ответа!
danielricecodes
3
Справедливо отметить, что руководство по стилю сообщества Ruby предпочитает этот синтаксис только при создании массива слов : «непустые строки без пробелов и специальных символов». Так что ты прав, тебе, наверное, никогда не следует делать то, что я предлагал.
%w()
синтаксис предназначен для использования в общем случае. В этом случае я бы рекомендовал использовать более подробный синтаксис['a', ' ', 'b']
. Более читабельный, менее удивительный для других программистов.Ответы:
Избежать этого:
%w(a b\ c) # => ["a", "b c"]
источник
%w
. Не делай этого.Попробуй это:
>> a = %w(a\ b c) => ["a ", "b", "c"]
источник
Попробуй это:
>> a = %W[a \s b] => ["a", " ", "b"]
источник