/ / Va bene usare le stringhe ovunque e mai usare i simboli in Ruby on Rails? - ruby-on-rails

Va bene usare le stringhe ovunque e mai usare i simboli in Ruby on Rails? - ruby-on-rails

Ci sono alcuni fastidi nell'usare i simbolihash. Ad esempio, la gemma JSON che usiamo restituisce sempre le stringhe da qualsiasi stringa JSON che è stata analizzata, quindi dovunque facciamo riferimento a un hash generato dalla decodifica JSON, dobbiamo usare una combinazione di stringhe e simboli per accedere agli hash.

Dal punto di vista dello stile, è giusto mantenere le cose coerenti usando solo le stringhe?

risposte:

3 per risposta № 1

Le stringhe sono mutabili, quindi ogni volta che fai riferimento "foo" rubino crea un nuovo oggetto. Puoi testarlo chiamando "foo".object_id in irb. I simboli, d'altra parte, non lo sono, quindi ogni volta che fai riferimento :foo rubino restituisce lo stesso oggetto.

Riguardo allo "stile" e alla "coerenza" puoi sempre usare hash.symbolize_keys! per i dati json ricevuti, questo trasformerà tutte le chiavi stringa in simboli. E viceversa - hash.stringify_keys! per renderli di nuovo stringhe.


0 per risposta № 2

Non esiste una regola che dice che una chiave hash dovrebbe essere un simbolo.

Il simbolo-come-chiave è visto molto in Rails come aconvenzione ... Rails fa un sacco di uso degli hash passanti per consentire più parametri, e le chiavi in ​​tali hash sono spesso simboli per indicare che sono parametri attesi / permessi per una chiamata di metodo.


0 per risposta № 3

Per l'indeciso tra di noi:

http://as.rubyonrails.org/classes/HashWithIndifferentAccess.html