2013-05-01 16 views
8

Devo usare?Qual è la sintassi hash corretta in Ruby 2.0?

{ :first_name => "Mathieu", :last_name => "Jackson" } 

o

{ first_name: "Mathieu", last_name: "Jackson" } 
+0

l'originale può essere sostituito da quest'ultimo. Se non lo è, ciò mostrerà un errore di sintassi. –

+1

@sawa OP non sta chiedendo cosa funziona, piuttosto cosa "dovrebbe" essere usato. È probabilmente fuori tema, ma questo è tutto. –

+0

@DaveNewton Hai ragione riguardo al testo, ma se guardi il titolo, ti sta chiedendo cosa funziona. – sawa

risposta

1

Usa ciò che si desidera. Non c'è significato sacro in questo. Ma si consiglia vivamente di usarlo in modo uniforme.

2

Non c'è "dovrebbe".

Preferisco la sintassi 1.9 a meno che non ci siano simboli-come-valori, quindi penso che sembri sciocco.

Ciò significa che non li uso in modo uniforme, dipende da quali valori hash sono – ma utilizzo sempre lo stesso stile in un singolo hash immediato.

7

Non c'è alcuna differenza tra i due, quindi è una preferenza personale. Anche se mi aspetterei che la maggior parte delle persone che scrivono il nuovo codice per 2.0 utilizzeranno il secondo formato.

È importante notare che se si sta sviluppando per il consumo pubblico/open source e si desidera un'ampia base di utenti, è necessario utilizzare lo stile "vecchio" degli hash. Ruby 1.8.x, oltre a JRuby e altre implementazioni di ruby ​​oltre a RMI, non supporta la sintassi concisa.

+0

anche JRuby supporta la sintassi: a => 1, iirc – poseid

+0

corretta, come da JRuby 1.7. 0 la sintassi tersa è stata resa predefinita (modalità 1.9), ma le versioni precedenti prevedevano/utilizzavano lo stile più vecchio di hash. –

2

Il primo deve essere utilizzato se si sta cercando la retrocompatibilità. Ma il secondo è più ordinato.

Problemi correlati