Platz im Ruby-Array um% w

81

Wie kann ich dem Ruby-Array Leerzeichen hinzufügen, wenn ich die Syntax% w (abc) verwenden möchte?

Vasiliy Ermolovich
quelle
12
Die %w()Syntax ist als Abkürzung für einen allgemeinen Fall gedacht. Ich würde ['a', ' ', 'b']in diesem Fall empfehlen, die ausführlichere Syntax zu verwenden. Besser lesbar, für andere Programmierer weniger überraschend.
Ben Marini

Antworten:

162

Entkomme:

%w(a b\ c) # => ["a", "b c"]
Gareth
quelle
2
Vielen Dank. Nach Ihrer Antwort verstehe ich, wie ich es machen kann. Ich wollte genau das -% w (a \ bc) # => ["a", "", "b", "c"]
Vasiliy Ermolovich
3
Während dies eine "richtige" Antwort ist, ist sie schrecklich unlesbar, was den Zweck von zunichte macht %w. Tu das nicht.
Abschlag
Das ist eigentlich eine Art kluger @VasiliyErmolovich. Ruby hat alle möglichen "Tricks" und ich finde immer neue Wege, Dinge mit der Sprache auszudrücken. So unlesbar es auch sein mag, es ist ordentlich, dass die Ruby-Sprache die Syntax in Ihrer Antwort in erster Linie unterstützt!
Danielricecodes
2
Es ist fair darauf hinzuweisen, dass der Ruby Community Style Guide diese Syntax nur bevorzugt, wenn Sie eine Reihe von Wörtern erstellen : "Nicht leere Zeichenfolgen ohne Leerzeichen und Sonderzeichen". Sie haben also Recht, Sie sollten wahrscheinlich nie das tun, was ich vorgeschlagen habe.
Gareth
16

Versuche dies:

>> a = %w(a\  b c)
=> ["a ", "b", "c"]
Sudhanshu
quelle
0

Versuche dies:

>> a = %W[a \s b]
=> ["a", " ", "b"]
nguyentrung206
quelle