2015-04-03 111 views
-4

通常,使用空間讓程序看起來很容易組織起來,這是一種很好的編程風格。例如,在數學運算之間,有組織的程序員經常會放置空間。Java中的空間意味着什麼?

但我也看到的是使用駱駝案件的人。像outOfBoundException一樣。

爲什麼程序員不能使用空格而不是在駱駝案例中編寫名字/標識符

+1

你的意思是爲什麼*不能*他們? – 2015-04-03 01:45:55

+0

是的,編輯謝謝 – user11355 2015-04-03 01:46:44

+2

你給的例子,'OutOfBoundsException'實際上被稱爲picket case。駱駝案例更像'outOfBoundsException'... – user700390 2015-04-03 01:48:07

回答

1

由空格分隔的變量單詞將被解釋爲多個變量。編譯器無法理解您的意思是單個變量。在數學中,通常使用單個字母符號。歧義存在於我們的日常語言中,但編程語言無法承受。現在,使用駱駝案件分開單詞只是一個慣例。您可能會用其他語言突出顯示。然而,它對所得到的應用程序幾乎沒有影響。搜索Google命名約定。你可能還想看看「約定優於配置」,以及Python中的空格縮進如何完全改變。另請注意,Excel公式中的空格表示相交。

1

爲了避免歧義。

例如,

StringBuilder firstStringBuilder 

聲明一個StringBuilder可變稱爲firstStringBuilder

但是,如果你寫

string builder first string builder 

,那麼什麼是類名,什麼是變量名?編譯器是否應將其解釋爲String builderFirstStringBuilder?所以使用空間是不可行的。

5

你如何在表格中寫下你的名字Doeser或D O E S E R? 對象名稱是一個身份,這就是爲什麼我們不能在名稱之間使用空格。

Java中的空白用於分隔Java源文件中的標記。在某些地方,如訪問修飾符,類型名稱和標識符之間需要空格,並用於提高其他地方的可讀性。

Java有一些命名convenstions http://java.about.com/od/javasyntax/a/nameconventions.htm

1

至於其他的答案指出,如果編程語言允許在標識符空間,它引入了嚴重的不確定性問題。

  • 語法允許兩個連續的<identifier>符號的任何地方都是不明確的。

  • 語法允許在<identifier>之前或之後的關鍵字的任何地方都是不明確的。

這將是可能的設計語法來擺脫這些歧義;例如

  • 標識符必須以$開始,或者必須用引號引起來,和/或
  • 關鍵字必須全部大寫和全部大寫的「詞」中的標識符被禁止。

但是,當你解決這些規則的所有後果時,最終你會得到一種大多數程序員都恨的語言。


是什麼空間,在Java中是什麼意思?

要特別回答 - 空格分隔標識符和關鍵字。在一個文字字符或字符串中,它代表Unicode SP碼點。

爲什麼程序員不能在空間中使用空格而不是寫名字/標識符?

因爲這是指定Java語言的方式!要了解他們爲什麼如此指定Java,請參閱上文。