所以,在我的編程經驗中,我遇到了靜態類型語言的兩種類型註釋:我稱它們爲'之前'和'之後'。 C風格的語言使用的格式C風格類型註解vs其他
int i = 5
雖然大多數非C家族語言中使用的格式前一類的
var c:int = 5
例子是C,C++,Java的;後一類的例子是Scala,Haxe,Go。
這似乎有些膚淺,但我的問題是:每種風格的優點是什麼?爲什麼使用一個在另一個上?爲什麼C首先採用這種風格?
所以,在我的編程經驗中,我遇到了靜態類型語言的兩種類型註釋:我稱它們爲'之前'和'之後'。 C風格的語言使用的格式C風格類型註解vs其他
int i = 5
雖然大多數非C家族語言中使用的格式前一類的
var c:int = 5
例子是C,C++,Java的;後一類的例子是Scala,Haxe,Go。
這似乎有些膚淺,但我的問題是:每種風格的優點是什麼?爲什麼使用一個在另一個上?爲什麼C首先採用這種風格?
機器不小心 - 它只是誰設計的特定語言的人都感到有些類型的語法比別人更好或更易於閱讀。現代編譯器通常有幾個處理階段,幾乎所有這些語法差異在第一階段後都會丟失,它們解析文本並轉換成編譯器內部結構(AST - 抽象語法樹)。
有一些歷史優先級,例如在計算機工程歷史上下文中使用的「前綴」與「中綴」與「後綴」符號(http://en.wikipedia.org/wiki/Polish_notation,http://en.wikipedia.org/wiki/Infix_notation,http://en.wikipedia.org/wiki/Reverse_Polish_notation)被用於邊緣情況 - 例如, 「中綴」符號通常比較難以解析,並且需要比後綴/ RPN符號更多的內存,所以在資源非常稀缺(幾個內存或更少內存)的情況下不會使用它,但大多數原因現在已經過時,因爲硬件是足夠強大。
今天,當設計一種語言時,這種語法細節的選擇會受到試圖使語言類似於其他已有程序員的其他流行語言或語言組的影響,從而避免使語言火星「,很少有人會用到它。
TL;博士:要看是誰創造的語言,他雖然是更可讀或「正確的事情」)的人。
哪一個你覺得簡單? –
C++:'auto i = int {5}'。從左到右的閱讀順序正在成爲常態:-) –
其中沒有一個比另一個有優勢。這只是設計語言的一個問題,它只會修改編譯器的不同部分。就這樣! –