和反斜槓\的區別?沒多少程序員知道

在一次項目實戰中,因為/和\\的問題搞的暈頭轉向,對於程序員來說\\恐怕不會陌生,通常是用來轉義字符使用比如\\n。普通的用戶來說/恐怕不會陌生,比如我們輸入域名的時候就是使用/。

我們來先看個我實戰項目發現的一個好玩的現象:


斜杆/和反斜槓\\的區別?沒多少程序員知道

代碼的細節的話,我不用解釋了很簡單的一個代碼。看到最後一行我們使用反斜槓\\來輸出系統變量,如果採用正斜槓/的話就會出現如下的錯誤:


斜杆/和反斜槓\\的區別?沒多少程序員知道

翻譯成中文就是分析錯誤:語法錯誤,意外的“/”


使用正斜槓/怎麼語法就變成錯誤了呢?後來我就去百度了一下然後打開了我才明白了/和\\之間的區別。
正斜槓和反斜槓的區別:
1、適用的系統不同:

在windows系統中,\\ 用來表示目錄。而在unix系統中,/ 表示目錄。

2、web路徑使用條件不同:

由於web遵循unix命名,所以在網址(URL)中,/ 表示目錄。例如:出現在html url() 屬性中的路徑,指定的路徑是網絡路徑,所以必須用 斜杆/。
Unix使用斜杆/ 作為路徑分隔符,而web應用最新使用在Unix系統上面,所以目前所有的網絡地址都採用 斜杆/ 作為分隔符。

Windows由於使用 斜杆/ 作為DOS命令提示符的參數標誌了,為了不混淆,所以採用 反斜槓\\ 作為路徑分隔符。所以目前windows系統上的文件瀏覽器都是用 反斜槓\\ 作為路徑分隔符。隨著發展,DOS系統已經被淘汰了,命令提示符也用的很少,斜杆和反斜槓在大多數情況下可以互換,沒有影響。


斜杆/和反斜槓\\的區別?沒多少程序員知道

windows系統上已經不區分/和\\了

所以我們可以看出來我之前出錯的原因,畢竟windows想要與眾不同,所以如果是windows系統的話,使用反斜槓來代表目錄是絕對不會出錯的。


分享到:


相關文章: