Apa sebenarnya garis miring terbalik?
Ini digunakan sebagai karakter yang melarikan diri. Tapi saya selalu bertanya-tanya apa yang melarikan diri, atau apa yang melarikan diri.
Saya tahu "\ n" menunjuk baris baru. Tapi di mana datangnya pelarian itu? Mengapa disebut demikian?
programming-languages
Tuan Coder
sumber
sumber
Jawaban:
Backslash digunakan sebagai karakter marker untuk memberi tahu kompiler / juru bahasa bahwa karakter berikutnya memiliki beberapa makna khusus. Apa artinya karakter berikutnya terserah implementasi. Misalnya bahasa gaya-C gunakan \ n untuk berarti baris baru dan \ t untuk tab artinya.
Penggunaan kata "escape" benar-benar berarti untuk sementara keluar dari parsing teks dan ke mode lain di mana karakter selanjutnya diperlakukan secara berbeda.
sumber
:))
Ini adalah istilah yang terkait dengan urutan pelarian dan kunci Esc (pelarian).
Karakter itu sendiri tidak "melarikan diri" dari karakter lain mana pun. Orang mungkin mengatakan karakter mengikuti karakter pelarian (katakanlah, \ n dari contoh Anda) lolos dari nasib yang digunakan sebagai n biasa dalam beberapa aplikasi, dan malah digunakan sebagai baris baru.
sumber
Escape sequence memiliki banyak kesamaan dengan konsep komunikasi out-of-band :
Katakanlah Anda sedang melakukan transfer file melalui port serial dan Anda bernegosiasi dengan komputer di ujung lainnya: "Oke, ini dia file". Karena dalam kasus umum semua karakter mungkin karakter file yang valid (jika ini adalah file ASCII) Anda memiliki beberapa masalah:
Berbagai orang sepanjang sejarah komputasi telah menerapkan banyak metode berbeda untuk mengatasi masalah ini.
Dalam kasus string literal dalam bahasa pemrograman, itu masalah yang sama. Kutipan pertama mengatakan "ini dia string - mulailah membaca sampai Anda mendapatkan penawaran lain". Tentu saja, maka Anda memiliki masalah dalam mengirim karakter kutipan, sehingga mereka menemukan urutan slash escape. Jika Anda melihat garis miring dan kutipan, maka itu kutipan literal, bukan akhir dari string. Sayangnya Anda baru saja menelan laba-laba untuk memakan lalat, karena sekarang Anda tidak dapat mengirim kombinasi kutipan garis miring. Jadi, Anda bisa lolos dari tebasan dengan tebasan lain. Jadi slash-slash berarti slash, slash-quote berarti kutipan. Itu memungkinkan mereka menggunakan garis miring untuk karakter yang tidak dapat dicetak atau sulit dicetak lainnya seperti carriage return, line feed, tab, dll.
sumber
Ini adalah pelarian dari konteks parsing , yang menuntut (apa yang penjahat)
n
ditafsirkan sebagain
bukan sebagainewline
.Perbedaan yang paling menarik tentang hal itu adalah bahwa pelarian tidak mengubah konteks parsing seperti yang dilakukan oleh karakter kutipan
"
(atau banyak simbol lainnya), membutuhkan simbol lain"
(atau simbol lain) untuk kembali ke konteks sebelumnya. Mereka hanya mengambil sedikit pengalihan tetapi kembali di jalan ASAP.Namun tidak ada yang berbicara lagi tentang konteks parsing , sebanyak tidak ada yang tampaknya menulis parser lagi, sejak munculnya xml dan json. Beberapa masalah berhenti menjadi arus utama, masuk ke ceruk dan konsep ceruk aneh seperti itu tetap ada.
sumber