反斜線
\ | |
---|---|
反斜線 | |
反斜線或反斜槓(\,英語:Backslash),是一種主要用於編寫計算機程序的專門符號[1]。其Unicode編號為U+005C,HTML中代碼是\
。
注意:符號「/」稱為斜線、斜線號、斜槓或前斜線,應予以區分。
歷史
[編輯]根據計算機科學家鮑勃·比默介紹稱,反斜線是由他於1961年在IBM工作時首先引入ASCII碼的[2]。在ALGOL中,「/\」和「\/」這種斜線加上反斜線的形式被用來分別表示「∧」和「∨」這兩個布爾運算符[2]。這兩種運算符在早期由UnixV6及V7和其後2.11BSD支持下的C語言中均有包括。
使用
[編輯]程序語言
[編輯]在許多程序語言,如C語言、Perl、PHP和Unix腳本語言中,反斜線用來表示緊隨其後的字符應被特殊處理,也就是轉義字符。許多正則表達式語言都會將它視為字面意義和元字符之前的切換。例如\n
是換行,\0
是空字符,它們表示的實際上都是一個字符(char)。
在某些程序語言的命令行中,例如在linux中,反斜線常被放在一行的末尾用來指示編譯器忽略其後的換行符,使得下一行會被當做同一行語句。這種情況下,反斜線作為一個強制換行符,將代碼拆解成「連續行」。GNU make手冊中寫道:「我們用反斜線來將過長的命令行拆分成兩行;它通常在一句過長的命令行中使用,使其更容易閱讀。」[3]
操作系統
[編輯]MS-DOS 1.0版本最初在1981年發布時並不支持目錄結構。當時大批由IBM開發的DOS工具都使用正斜線作為命令行參數的起始符號,例如「DIR /W
」指令會以寬列表格式選項執行DIR命令。1983年,MS-DOS 2.0開發時引入了目錄系統,並採用了與Unix相似的分層方式。然而Unix系統中用作路徑分層的「/」在DOS上已被占用,為了與DOS 1.0保持兼容,微軟的開發者們不得不選用了與其視覺上相近的「\」。[4]
Windows操作系統繼承了MS-DOS的這一用法並且兩種斜線的表示方法都可以被支持,用戶如果輸入了由正斜線表示的目錄仍然可以跳轉到正確的目錄下。但是在個別的系統程序或應用中只接受反斜線的目錄。[5]
希臘字母
[編輯]在一些數學軟件(如MATLAB)和維基百科上,可以使用反斜線輸入希臘字母。\pi
會轉成,\lambda
會轉成。
替代
[編輯]在日文編碼時,在日文版本的ISO 646(基於ASCII整合的7位編碼標準)、JIS X 0201(8位編碼標準)以及Shift JIS(兼容ASCII多位編碼標準)中,ASCII里用來表示反斜線的碼位0x5C被日元符號「¥」取代。而計算機程序在許多環境下仍然會將該編碼視為反斜線,由此造成了很多混淆,尤其是在MS-DOS的文件名中[6]。由於這一現象的相當普遍,時至今日仍然有一些Unicode字體,例如日文黑體MS Mincho會將反斜線渲染成「¥」,所以在這些字體中Unicode字符00A5(¥)和005C(\)看起來是一樣的。同樣的,許多ISO 646其他語言版本也將「\」替換成了其他符號,如「₩」(韓文)、「Ö」(德文、瑞典文)、「Ø」(丹麥文、挪威文)、「ç」(法文)和「Ñ」(西班牙文),它們均會導致同樣的問題。由於不是所有的字符集和鍵盤布局上都包括反斜線,ANSI C標準支持將其轉錄成三字符組「??/」。RFC 1345則建議如果反斜線不可用則將其轉錄為「//」[7]。
參考文獻
[編輯]- ^ 教育部語言文字信息管理司. G/\ BOT ..88888..翊2011 標點符號用法[S]. 北京:中國標準出版社,2011
- ^ 2.0 2.1 Bob Bemer. HOW ASCII GOT ITS BACKSLASH. Computer History Vignettes. [2014-06-08]. (原始內容存檔於2013-01-11).
- ^ GNU 'make' manual. Gnu.org. [2013-06-16]. (原始內容存檔於2013-07-03).
- ^ Why is the DOS path character "\"?. Blogs.msdn.com. 2005-06-24 [2013-06-16]. (原始內容存檔於2010-03-30).
- ^ Why Windows Uses Backslashes and Everything Else Uses Forward Slashes. howtogeek.com. [2014-06-08]. (原始內容存檔於2014-07-03).
- ^ When is a backslash not a backslash?. oreilly.com. [2014-06-25]. (原始內容存檔於2016-03-04).
- ^ RFC 1345. Tools.ietf.org. 1991-12-26 [2013-06-16]. (原始內容存檔於2013-05-30).