2012-10-19 17 views
13

Utilizzo di %W Posso usare %W[a #{} b #{} c], anche io posso concatenare gli array, ma è possibile creare l'array ['a', '', 'b', '', 'c'] utilizzando solo %w[]?Crea array con stringa vuota utilizzando% w []

+5

no. % w [] non ha modo di rappresentare una stringa di lunghezza zero come un elemento. – dbenhur

+0

Vedere anche http://stackoverflow.com/questions/4064062/space-in-the-ruby-array-by-w (lì i risultati contengono uno spazio - quindi è una situazione simile, non la stessa) – knut

+0

@knut : So di sfuggire allo spazio, ma non è quello che voglio – tig

risposta

0

È possibile utilizzare

%w[a \ b \ c].map(&:strip) 

, ma penso che non è molto pulito.

14

un paio di opzioni

%W[a b C#{''} z]

%W[a b c] << " "

(so che questo non sta usando la sintassi %w{}, ma per buona misura:

'a,b,c,,z'.split(',')

+0

la prima opzione qui indicata è la migliore IMO. dovrebbe essere contrassegnata la risposta corretta – sixty4bit

+0

funziona anche:% W {} – user2340939

-1

provare a utilizzare % W invece di% w e usa il carattere di escape \ s per la stringa vuota

%W[a \s b ] 
+1

'% W [a \ sb]' restituisce '['a', '', 'b']' invece di '['a', '' , 'b'] ' – tig

+0

puoi usare% W [a # {" "} b] o% W [a # {String.new} b] o% W [a # {} b], ma non potrei trovare un modo per ottenere una stringa vuota usando% w – RubyMiner

+0

questo potrebbe aiutare. % w [a b] .insert (1, nil.to_s) – RubyMiner