{eval=Array;=+count(Array);}
使用空格的話一個(gè)是看著不明顯,還有就是會(huì)有沖突啊,代碼為了規(guī)范易讀,一般一行代碼,每個(gè)變量,邏輯運(yùn)算,中間都會(huì)用空格隔開,要是其他也都用空格,豈不是都沖突了,甚至直接錯(cuò)誤。
或許是我達(dá)不到你的高度,但我覺得你提的這是個(gè)錘子問題,空格替代下劃線,誰替代空格?
原本的變量名: user_first_name = "zhou"
替代后變量名: user first name = "zhou"。
只要你能替代的牛逼,讓美國(guó)人書寫英文時(shí)摒棄之前的觀念,讓他們接受空格兩邊的單詞是同一個(gè)單詞。
結(jié)論:程序員也想用空格,可是程序不允許。本文帶你了解深層次原因。
本文嘗試從多種語言的規(guī)范角度,說明程序代碼,或者命令行內(nèi)為什么不提倡用空格。
本段從各個(gè)語言的角度,說一下。
1 - C語言
C語言是上帝賜給人類的禮物。他有很明確的規(guī)范,最新的也就是 ANSI-C 標(biāo)準(zhǔn)。
在定義變量時(shí),變量名可以是字母、數(shù)字和下劃線的組合。但是也不是隨便的組合,要注意以下幾個(gè)命名規(guī)則:
變量名的開頭必須是字母或下劃線,不能是數(shù)字。
變量名中的字母是區(qū)分大小寫的。
變量名絕對(duì)不可以是C語言關(guān)鍵字。
變量名中不能有空格。
看到了嗎,變量名只能在 a-z, A-Z, 0-9,_,之間選擇,沒有其他項(xiàng)。
第四條,因?yàn)樯鲜鱿拗疲步^對(duì)不允許出現(xiàn)“空格”。
2 - Java語言
Java用途廣泛,使用眾多。
其命名規(guī)則(Naming rules)如下。
變量名稱區(qū)分大小寫。
變量的名稱可以是任何合法標(biāo)識(shí)符。
可以包含Unicode字母、數(shù)字和另外兩個(gè)特殊字符,如下劃線(_)和美元符號(hào)($)。
變量名的長(zhǎng)度任意。
變量名以字母開頭(也可以使用下劃線,但一般不用)。
某些自動(dòng)生成的變量可能包含“$”符號(hào)。
盡量避免使用“$”符號(hào)。
不允許使用空格。
不允許使用特殊字符。
不允許以數(shù)字開頭。
后續(xù)字符可以是字母、數(shù)字、$符號(hào)或下劃線。
變量名不能是關(guān)鍵字或保留字。
看到了嗎,空格是不允許使用的。
3 - Python語言
上面兩種都是強(qiáng)類型語言,我們看看以python為代表的解釋型腳本語言規(guī)范如何。
python命名規(guī)則如下:
變量名僅支持?jǐn)?shù)字、字母和下劃線。
變量名只能以字母,或下劃線開頭。
變量名不能以數(shù)字開頭。
變量名區(qū)分大小寫。
變量名內(nèi)不允許有空格。
不允許其他特殊字符。
變量名不能是關(guān)鍵字。
可以看到,python受C語言的影響痕跡很重,基本保持了C的命名規(guī)則。
4 - 比較新的語言GO
我們?cè)倌胓o語言做比較,go是一門現(xiàn)代化的語言,融合了編譯型和解釋性語言的優(yōu)秀設(shè)計(jì)理念,便于開發(fā)使用。
go語言的變量命名規(guī)則:
名稱必須以字母開頭,并且可以包含任意數(shù)量的其他字母和數(shù)字。
變量名不能以數(shù)字開頭。
變量名不能包含空格。
如果變量的名稱以小寫字母開頭,則只能在當(dāng)前包中訪問該變量,這被視為未導(dǎo)出的變量。
如果變量的名稱以大寫字母開頭,則可以從當(dāng)前包之外的包訪問該變量,該包被視為導(dǎo)出的變量。
如果一個(gè)名稱由多個(gè)單詞組成,則第一個(gè)單詞之后的每個(gè)單詞應(yīng)按如下方式大寫:empName、EmpAddress等。
變量名區(qū)分大小寫(cAR、CaR和CAr是三個(gè)不同的變量)。
變量名不能是關(guān)鍵字。
從上面的四種語言舉例中,可以看到每種語言都明確寫到“不允許變量名包含空格”。
因?yàn)闊o論是靜態(tài)編譯型語言,還是解釋型語言,都是要將代碼解析為機(jī)器碼執(zhí)行??崭?、換行符、空行是沒有意義的,會(huì)被編譯器忽略。如果使用了帶空格的變量,語法就會(huì)出錯(cuò)。
說完編程語言代碼層面的內(nèi)容,我們把目光轉(zhuǎn)向命令行,主要介紹一下widnows平臺(tái)和linux平臺(tái)中,空格的特殊用途。
1 - windows dos
widnows平臺(tái)主要說一說dos指令,因?yàn)樗莃at批處理文件的基礎(chǔ)。
空格是位置分隔符,也就是命令行傳入?yún)?shù)argvs用于區(qū)分位置參數(shù)的分隔符。
例如下面這個(gè)創(chuàng)建文件夾指令:
md path ofile
如果加上空格:
md path tofile
則會(huì)創(chuàng)建兩個(gè)目錄 path,和 tofile。這不是我們想要的結(jié)果。
2 - linux shell
linux命令行下,功能幾乎是一樣的,空格是默認(rèn)的位置參數(shù)分隔符。
例如創(chuàng)建如下目錄:
mkdir -pv a/b/c
如果加上空格:
mkdir -pv a/ b/c
結(jié)果也不是我們想要的。
我們知道,空格在多數(shù)語言內(nèi),或者命令行內(nèi),是保留關(guān)鍵詞,是“占位符”,“分隔符”。
如果與系統(tǒng)命名沖突,造成程序不可控運(yùn)行,這是非常危險(xiǎn)的。
我是@程序員小助手,持續(xù)分享編程與程序員成長(zhǎng)相關(guān)的內(nèi)容,歡迎關(guān)注~~
如果你按你說的,一個(gè)變量名以空格開頭,或者以空格結(jié)尾,鬼知道啊。如果空格在名字中間,那鬼知道是一個(gè)變量還是兩個(gè)
語言中空格是關(guān)鍵詞的分割符號(hào),所以不能在類名或變量名 函數(shù)名等用空格,為了肉眼識(shí)別用駝峰或小劃線
因?yàn)榭崭裨谀J(rèn)我們(計(jì)算機(jī))會(huì)認(rèn)為是空白符,如 (tab符),一般都會(huì)做處理,用_鏈接字符則沒歧義。
0
回答5
回答10
回答0
回答0
回答10
回答0
回答0
回答0
回答0
回答