código:¿Por qué este personaje de escape no funciona en Ruby?
file.write 'objectclass: groupOfUniqueNames\n'
Por extraño que parezca, es en realidad se está imprimiendo el \ n ... Lo que está mal aquí?
código:¿Por qué este personaje de escape no funciona en Ruby?
file.write 'objectclass: groupOfUniqueNames\n'
Por extraño que parezca, es en realidad se está imprimiendo el \ n ... Lo que está mal aquí?
Las cadenas de comillas simples en Ruby son más 'literales' que las cadenas entre comillas dobles; las variables no se evalúan, y la mayoría de los caracteres de escape no funcionan, con la excepción de \\
y \'
para incluir barras diagonales inversas y comillas simples, respectivamente.
comillas dobles son lo que quiere:
file.write "objectclass: groupOfUniqueNames\n"
Estás utilizando comillas simples. Las únicas secuencias de escape permitidas en comillas simples son \\
para \
y \'
para '
. Use comillas dobles y \n
funcionará como se esperaba.
En realidad, ni siquiera '' \\ obras. (Lo que BTW significa que no puede tener una sola cadena entre comillas que finaliza con un número impar de barras invertidas.) –
Por supuesto, funciona: ''\\' ==" \\ "# => true' – sepp2k
@ Jörg W Mittag: Tenga en cuenta que ''\\'. Size == 1', que es un número impar. – sepp2k
Los sólo dos secuencias de escape permitido en una misma cadena entre comillas son \'
(para una comilla simple) y \\
(para una sola barra invertida). Si desea utilizar otras secuencias de escape, como \n
(para nueva línea), debe usar una cadena con comillas dobles.
Por lo tanto, esto va a funcionar:
file.write "objectclass: groupOfUniqueNames\n"
Aunque personalmente me basta con utilizar puts
aquí, que ya suma una nueva línea:
file.puts 'objectclass: groupOfUniqueNames'
Entonces, ¿por qué realmente querría usar cadenas de comillas simples? ¿Es solo una mano corta para evitar escapar de los personajes? – Zombies
También puede ser útil si no desea interpolar. Por ejemplo: ''La interpolación se ve así: # {@ variable} '', que se imprime literalmente, en oposición a' "El valor de @foo es # {@ foo}" ', donde' @ foo' se evalúa y insertado. –
@Zombies La secuencia de una sola cita requiere menos trabajo por parte de Ruby. Son un poco más rápidos de usar cuando sabes que no vas a necesitar cosas como la interpolación variable. – meagar