Пробел в рубиновом массиве на% w

83

Как добавить пробел в массив рубинов, если я хочу использовать синтаксис% w (abc)?

Василий Ермолович
источник
13
Их %w()синтаксис предназначен для использования в общем случае. В этом случае я бы рекомендовал использовать более подробный синтаксис ['a', ' ', 'b']. Более читабельный, менее удивительный для других программистов.
Бен Марини

Ответы:

168

Избежать этого:

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

Попробуй это:

>> a = %w(a\  b c)
=> ["a ", "b", "c"]
Судханшу
источник
1

Попробуй это:

>> a = %W[a \s b]
=> ["a", " ", "b"]
nguyentrung206
источник