Comillas dobles o simples

Resuelto imjp asked hace 13 años • 7 respuestas

¿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"

imjp avatar Jun 18 '11 17:06 imjp
Aceptado

" "le permite hacer interpolación de cadenas, por ejemplo:

world_type = 'Mars'
"Hello #{world_type}"
Jits avatar Jun 18 '2011 10:06 Jits

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 
lfx_cool avatar May 17 '2013 04:05 lfx_cool

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.

aloucas avatar Feb 21 '2016 22:02 aloucas