¿De qué se escapa realmente la barra invertida?
Se usa como un personaje para escapar. Pero siempre me pregunto qué se escapa o de qué se escapa.
Sé que "\ n" designa una nueva línea. Pero, ¿dónde entra el escape? ¿Por qué se llama así?
programming-languages
Sr. codificador
fuente
fuente
Respuestas:
La barra invertida se utiliza como un marcador para indicarle al compilador / intérprete que el siguiente carácter tiene un significado especial. Lo que significa el próximo personaje depende de la implementación. Por ejemplo, los lenguajes de estilo C usan \ n para significar nueva línea y \ t para significar pestaña.
El uso de la palabra "escape" realmente significa escapar temporalmente del análisis del texto y pasar a otro modo en el que el carácter posterior se trata de manera diferente.
fuente
:))
Es un término relacionado con el de una secuencia de escape y una tecla Esc (escape).
El personaje en sí no está "huyendo" de ningún otro personaje. Se podría decir que el carácter que sigue al carácter de escape (digamos, \ n de su ejemplo) escapa al destino de ser usado como un n ordinario en alguna aplicación, y se usa en cambio como una nueva línea.
fuente
Las secuencias de escape tienen mucho en común con el concepto de comunicación fuera de banda :
Digamos que está haciendo una transferencia de archivos a través de un puerto serie y negocia con la computadora en el otro extremo: "OK, aquí viene el archivo". Dado que, en el caso general, todos los caracteres pueden ser caracteres de archivo válidos (si es un archivo ASCII) tiene algunos problemas:
Varias personas a lo largo de la historia de la informática han implementado muchos métodos diferentes para solucionar este problema.
En el caso de cadenas literales en un lenguaje de programación, es un problema similar. La primera cita dice "aquí viene la cadena: comience a leer hasta que obtenga otra cita". Por supuesto, entonces tiene el problema de enviar un carácter de cita, por lo que inventaron la secuencia de escape de barra. Si ve una barra oblicua y luego una cita, entonces esa es una cita literal, no el final de la cadena. Lamentablemente, se tragó una araña para comerse una mosca, porque ahora no puede enviar la combinación literal de barra oblicua. Entonces, puedes escapar de una barra con otra barra. Entonces barra-barra significa barra, barra-cita significa cita. Eso les permitió usar la barra diagonal para otros caracteres no imprimibles o difíciles de imprimir, como retornos de carro, avances de línea, pestañas, etc.
fuente
Es un escape del contexto de análisis , que es exigente (qué villano)
n
ser interpretado como enn
lugar de como unnewline
.La distinción más interesante al respecto es que un escape no cambia el contexto de análisis de la forma en
"
que lo haría un carácter de comillas (o muchos otros símbolos), lo que requiere que otro"
(o algún otro símbolo) regrese al contexto anterior. Simplemente se divierten un poco, pero vuelven a la carretera lo antes posible.Sin embargo, nadie habla más sobre contextos de análisis , por lo que ya nadie parece escribir analizadores, desde el advenimiento de xml y json. Algunos problemas dejan de ser convencionales, entran en un nicho y conceptos de nicho extraños como ese permanecen persistentes.
fuente