Do que a barra invertida realmente escapa?
É usado como um personagem que escapa. Mas sempre me pergunto o que está escapando ou o que está sendo escapado.
Eu sei que "\ n" designa uma nova linha. Mas onde é que entram os que escapam? Por que isso é chamado assim?
programming-languages
Mr Coder
fonte
fonte
Respostas:
A barra invertida é usada como um caractere marcador para informar ao compilador / intérprete que o próximo caractere tem algum significado especial. O que esse próximo caractere significa depende da implementação. Por exemplo, idiomas no estilo C usam \ n para significar nova linha e \ t para significar tab.
O uso da palavra "escape" realmente significa escapar temporariamente da análise do texto e para outro modo em que o caractere subsequente é tratado de maneira diferente.
fonte
:))
É um termo relacionado ao de uma sequência de escape e de uma tecla Esc (escape).
O personagem em si não está "fugindo" de nenhum outro personagem. Pode-se dizer que o caractere após o caractere de escape (digamos, \ n do seu exemplo) escapa ao destino de ser usado como um n comum em algum aplicativo e é usado como uma nova linha.
fonte
As seqüências de escape têm muito em comum com o conceito de comunicação fora da banda :
Digamos que você esteja transferindo arquivos por uma porta serial e negocie com o computador do outro lado: "OK, aqui está o arquivo". Como no caso geral, todos os caracteres podem ser caracteres válidos (se for um arquivo ASCII), você tem alguns problemas:
Várias pessoas ao longo da história da computação implementaram muitos métodos diferentes para contornar esse problema.
No caso de strings literais em uma linguagem de programação, é um problema semelhante. A primeira citação diz "aqui vem a string - comece a ler até obter outra citação". Obviamente, você tem o problema de enviar um caractere de citação, então eles inventaram a sequência de escape da barra. Se você vir uma barra e depois uma citação, é uma citação literal, não o fim da sequência. Infelizmente, você acabou de engolir uma aranha para comer uma mosca, porque agora você não pode enviar a combinação literal de aspas. Assim, você pode escapar de uma barra com outra barra. Então barra-barra significa barra, barra-cotação significa cotação. Isso permitiu que eles usassem barras para outros caracteres não imprimíveis ou difíceis de imprimir, como retornos de carro, linhas de alimentação, guias etc.
fonte
É uma fuga do contexto de análise , que exige (que vilão)
n
ser interpretado como aon
invés de umnewline
.A distinção mais interessante é que uma fuga não muda o contexto de análise da maneira como um caractere de citação
"
(ou muitos outros símbolos) faria, exigindo que outro"
(ou algum outro símbolo) voltasse ao contexto anterior. Eles apenas se divertem um pouco, mas voltam à estrada o mais rápido possível.No entanto, ninguém fala mais sobre a análise de contextos , por mais que ninguém pareça mais escrever analisadores, desde o advento do xml e do json. Alguns problemas deixam de ser comuns, entram em um nicho e conceitos de nicho estranhos como esse permanecem por aí.
fonte