{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

為什么程序員不用空格用下劃線代替?

鄒立鵬鄒立鵬 回答0 收藏1
收藏問題

10條回答

MobService

MobService

回答于2022-06-28 11:42

使用空格的話一個是看著不明顯,還有就是會有沖突啊,代碼為了規范易讀,一般一行代碼,每個變量,邏輯運算,中間都會用空格隔開,要是其他也都用空格,豈不是都沖突了,甚至直接錯誤。



評論0 贊同0
  •  加載中...
Neilyo

Neilyo

回答于2022-06-28 11:42

或許是我達不到你的高度,但我覺得你提的這是個錘子問題,空格替代下劃線,誰替代空格?

原本的變量名: user_first_name = "zhou"

替代后變量名: user first name = "zhou"。

只要你能替代的牛逼,讓美國人書寫英文時摒棄之前的觀念,讓他們接受空格兩邊的單詞是同一個單詞。

評論0 贊同0
  •  加載中...
muddyway

muddyway

回答于2022-06-28 11:42

結論:程序員也想用空格,可是程序不允許。本文帶你了解深層次原因。


前言

本文嘗試從多種語言的規范角度,說明程序代碼,或者命令行內為什么不提倡用空格


語言層面的規范

本段從各個語言的角度,說一下。


1 - C語言

C語言是上帝賜給人類的禮物。他有很明確的規范,最新的也就是 ANSI-C 標準。

在定義變量時,變量名可以是字母、數字和下劃線的組合。但是也不是隨便的組合,要注意以下幾個命名規則:

  1. 變量名的開頭必須是字母或下劃線,不能是數字。

  2. 變量名中的字母是區分大小寫的。

  3. 變量名絕對不可以是C語言關鍵字

  4. 變量名中不能有空格。

看到了嗎,變量名只能在 a-z, A-Z, 0-9,_,之間選擇,沒有其他項。

第四條,因為上述限制,也絕對不允許出現“空格”


2 - Java語言

Java用途廣泛,使用眾多。

其命名規則(Naming rules)如下。

  1. 變量名稱區分大小寫

  2. 變量的名稱可以是任何合法標識符

  3. 可以包含Unicode字母、數字和另外兩個特殊字符,如下劃線(_)和美元符號($)。

  4. 變量名的長度任意。

  5. 變量名以字母開頭(也可以使用下劃線,但一般不用)。

  6. 某些自動生成的變量可能包含“$”符號。

  7. 盡量避免使用“$”符號。

  8. 不允許使用空格

  9. 不允許使用特殊字符

  10. 不允許以數字開頭

  11. 后續字符可以是字母、數字、$符號或下劃線。

  12. 變量名不能是關鍵字或保留字

看到了嗎,空格是不允許使用的


3 - Python語言

上面兩種都是強類型語言,我們看看以python為代表的解釋型腳本語言規范如何。

python命名規則如下:

  1. 變量名僅支持數字、字母和下劃線。

  2. 變量名只能以字母,或下劃線開頭。

  3. 變量名不能以數字開頭。

  4. 變量名區分大小寫。

  5. 變量名內不允許有空格

  6. 不允許其他特殊字符。

  7. 變量名不能是關鍵字。

可以看到,python受C語言的影響痕跡很重,基本保持了C的命名規則。


4 - 比較新的語言GO

我們再拿go語言做比較,go是一門現代化的語言,融合了編譯型和解釋性語言的優秀設計理念,便于開發使用。

go語言的變量命名規則:

  1. 名稱必須以字母開頭,并且可以包含任意數量的其他字母和數字。

  2. 變量名不能以數字開頭

  3. 變量名不能包含空格。

  4. 如果變量的名稱以小寫字母開頭,則只能在當前包中訪問該變量,這被視為未導出的變量。

  5. 如果變量的名稱以大寫字母開頭,則可以從當前包之外的包訪問該變量,該包被視為導出的變量。

  6. 如果一個名稱由多個單詞組成,則第一個單詞之后的每個單詞應按如下方式大寫:empName、EmpAddress等。

  7. 變量名區分大小寫(cAR、CaR和CAr是三個不同的變量)。

  8. 變量名不能是關鍵字

從上面的四種語言舉例中,可以看到每種語言都明確寫到“不允許變量名包含空格”。

因為無論是靜態編譯型語言,還是解釋型語言,都是要將代碼解析為機器碼執行。空格、換行符、空行是沒有意義的,會被編譯器忽略。如果使用了帶空格的變量,語法就會出錯。


命令行

說完編程語言代碼層面的內容,我們把目光轉向命令行,主要介紹一下widnows平臺和linux平臺中,空格的特殊用途


1 - windows dos

widnows平臺主要說一說dos指令,因為它是bat批處理文件的基礎。

空格是位置分隔符,也就是命令行傳入參數argvs用于區分位置參數的分隔符。

例如下面這個創建文件夾指令:

md path ofile

如果加上空格:

md path tofile

則會創建兩個目錄 path,和 tofile。這不是我們想要的結果。


2 - linux shell

linux命令行下,功能幾乎是一樣的,空格是默認的位置參數分隔符。

例如創建如下目錄:

mkdir -pv a/b/c

如果加上空格:

mkdir -pv a/ b/c

結果也不是我們想要的。


結語

我們知道,空格在多數語言內,或者命令行內,是保留關鍵詞,是“占位符”,“分隔符”

如果與系統命名沖突,造成程序不可控運行,這是非常危險的。


我是@程序員小助手,持續分享編程與程序員成長相關的內容,歡迎關注~~

評論0 贊同0
  •  加載中...
chaos_G

chaos_G

回答于2022-06-28 11:42

如果你按你說的,一個變量名以空格開頭,或者以空格結尾,鬼知道啊。如果空格在名字中間,那鬼知道是一個變量還是兩個

評論0 贊同0
  •  加載中...
Betta

Betta

回答于2022-06-28 11:42

語言中空格是關鍵詞的分割符號,所以不能在類名或變量名 函數名等用空格,為了肉眼識別用駝峰或小劃線

評論0 贊同0
  •  加載中...
objc94

objc94

回答于2022-06-28 11:42

為什么你說話不用呢,要用了替代啊?因為那個地方不能用啊,用了就是錯誤的

評論0 贊同0
  •  加載中...
trilever

trilever

回答于2022-06-28 11:42

一般情況下,空格是分隔符,下劃線不是。

特殊情況下,空格需要轉義,下劃線不需要。

評論0 贊同0
  •  加載中...
silencezwm

silencezwm

回答于2022-06-28 11:42

程序中,帶空格的文件名,空格要加轉義字符——我看這個很不爽——所以程序員給文件命名很忌諱空格

評論0 贊同0
  •  加載中...
gnehc

gnehc

回答于2022-06-28 11:42

因為空格在默認我們(計算機)會認為是空白符,如 (tab符),一般都會做處理,用_鏈接字符則沒歧義。

評論0 贊同0
  •  加載中...
Leck1e

Leck1e

回答于2022-06-28 11:42

一個空格跟兩個空格可不是容易看出來的

評論0 贊同0
  •  加載中...

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<