Estoy realmente nuevo a Ruby y yo estoy tratando de entender si hay un tiempo específico cuando debería utilizar ""
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'
vsget "user/new"
Respuestas:
" "
le permite hacer interpolación de cadenas, por ejemplo:fuente
excepto la interpolación, otra diferencia es que la 'secuencia de escape' no funciona entre comillas simples
fuente
'don\'t'
.puts '\\'
. Solo imprimirá una barra inclinada. ver aquí stackoverflow.com/questions/25499046/…Para responder a su pregunta, debe usarla
""
cuando desee realizar la interpolación de cadenas:Use citas simples de lo contrario.
Además, si se pregunta si hay una diferencia en términos de rendimiento, hay una excelente pregunta sobre esto en StackOverflow.
Y si usted es realmente nuevo en RoR, le insto a que elija un libro Ruby decente para aprender los conceptos básicos del idioma. Le ayudará a comprender lo que está haciendo (y le impedirá pensar que Rails es mágico). Yo personalmente recomiendo The Well grounded Rubyist .
fuente
Hay 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, lo que sea 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'
y"stackoverflow"
ambos evaluarán las 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 lo hacen!
Un literal de cadena creado por comillas simples no admite la interpollación de cadena y no escapa a las secuencias.
Un buen ejemplo es:
mientras
La interpolación con comillas simples no funciona en absoluto:
Mejores prácticas
Como la mayoría de los Ruby Linters sugieren usar literales de comillas simples para sus cadenas e ir a los dobles en el caso de secuencias de interpolación / escape.
fuente
Ejemplo de código de escape:
Ejemplo de interpolación:
fuente
Similar a la respuesta "\ n" en la impresión, el siguiente es otro caso de la diferencia
parece que * se convirtió en carácter escapado entre comillas dobles, pero no entre comillas simples. Por cierto, tendrá un impacto en la salida cuando se usa en expresiones regulares, por ejemplo, str.gsub (/ regular expression /, '\ 1, \ 2')
fuente
Otra razón por la que desearía usar comillas simples es al pasar un patrón regex como una cadena:
Este patrón de expresiones regulares funcionará porque se pasa entre comillas simples:
Este patrón regex fallará porque se pasa entre comillas dobles (tendrías que escapar dos veces para que funcione):
fuente
En este caso específico, no importa cómo lo escriba. Son equivalentes Además, es posible que desee leer más guías / tutoriales de Ruby :)
fuente