Comillas dobles o simples
¿Existe un momento específico en el que debo usar ""
vs ''
?
He estado usando comillas simples la mayor parte del tiempo porque es más fácil de escribir, pero no estoy seguro de si debería hacerlo.
por ejemplo get 'user/new'
vs.get "user/new"
" "
le permite hacer interpolación de cadenas, por ejemplo:
world_type = 'Mars'
"Hello #{world_type}"
excepto la interpolación, otra diferencia es que la 'secuencia de escape' no funciona entre comillas simples
puts 'a\nb' # just print a\nb
puts "a\nb" # print a, then b at newline
Existe una diferencia entre ''
comillas simples y dobles ""
en Ruby en términos de lo que se evalúa en una cadena.
Inicialmente, me gustaría aclarar que en la forma literal de una cadena, todo lo que esté entre comillas simples o dobles se evalúa como un objeto de cadena, que es una instancia de la clase Ruby String.
Por lo tanto, 'stackoverflow'
ambos "stackoverflow"
evaluarán instancias de la clase String sin ninguna diferencia .
La diferencia
La diferencia esencial entre las dos formas literales de cadenas (comillas simples o dobles) es que las comillas dobles permiten secuencias de escape, mientras que las comillas simples no.
Un literal de cadena creado entre comillas simples no admite la interpolación de cadenas y no escapa a las secuencias.
Un buen ejemplo es:
"\n" # will be interpreted as a new line
mientras
'\n' # will display the actual escape sequence to the user
Interpolar con comillas simples no funciona en absoluto:
'#{Time.now}'
=> "\#{Time.now}" # which is not what you want..
Mejores prácticas
Como sugieren la mayoría de Ruby Linters, utilice comillas simples literales para sus cadenas y opte por las dobles en el caso de secuencias de interpolación/escape.