2012-09-06 12 views
21

Uso rubino 1.9.3, chiavi stringa non sembra funzionare con la notazione Hash del colon:rubino nuova notazione hash colon con chiavi stringa

1.9.3p194 :005 > {abc: 5} 
=> {:abc=>5} 

1.9.3p194 :004 > {'abc': 5} 
SyntaxError: (irb):4: syntax error, unexpected ':', expecting tASSOC 
{'abc': 5} 
    ^

Credo che sto correndo la giusta versione di Ruby

1.9.3p194 :006 > RUBY_ENGINE 
=> "ruby" 
1.9.3p194 :007 > RUBY_VERSION 
=> "1.9.3" 
+2

C'è una richiesta di funzionalità aperto per questo - http: //bugs.ruby-lang.org/issues/4801 –

risposta

38

Questo è corretto - la nuova notazione dei due punti per gli hash funziona solo quando i tasti sono simboli.

Scusa, è proprio così.

Aggiornamento: simboli generali sono supportate utilizzando la nuova notazione in Ruby 2.2 e successive (stringhe come chiavi ancora non sono):

irb 
2.2.2 :001 > {'abc': 5} 
=> {:abc=>5} 
+4

Funziona solo quando i tasti sono * alcuni * simboli. Ad esempio, non puoi usarlo con ': $ set' o': 'pan.cakes''. –

+0

@muistooshort - Punto giusto. Sospettavo altrettanto, ma non riuscivo a trovare prove nel piccone. Hai una citazione? – Chowlett

+1

Grazie per la rapida risposta. Come sono gestite le persone? Basta usare la notazione di hash del razzo quando hai una stringa? – phillee