複製鏈接
請複製以下鏈接發送給好友

語法糖

鎖定
語法糖(Syntactic sugar),也譯為糖衣語法,是由英國計算機科學家彼得·約翰·蘭達(Peter J. Landin)發明的一個術語,指計算機語言中添加的某種語法,這種語法對語言的功能並沒有影響,但是更方便程序員使用。通常來説使用語法糖能夠增加程序的可讀性,從而減少程序代碼出錯的機會。
中文名
語法糖
外文名
Syntactic sugar
也    譯
糖衣語法
發    明
彼得·約翰·蘭達

語法糖舉例説明

舉個例子:在 C 語言裏用 a[i] 表示 *(a+i),用 a[i][j] 表示 *(*(a+i)+j),由此可見語法糖不是“現代語言”獨有,這種寫法簡潔明瞭,易於理解。

語法糖基本解釋

實際上從面向過程面向對象也是一種語法糖,C語言可以通過它的指針、類型轉換結構體實現面向對象的編程風格,但是C++更進一步的推廣了這種風格,更加易用,不過到了C#把(面向對象)OO的風格發揮得淋漓盡致。OO的編程風格對於面向過程來説是不是一種語法糖呢?如果生硬地照此理解,只有計算機硬件指令才不算語法糖,而其他一切利用編譯器彙編器將代碼抽象,和自然語言更相近的手段都算語法糖。

語法糖學習語法糖的意義

很多編程思想,編程理論層出不窮,當然,對於學習來説我們是要抓住技術的核心,但對於工程來説如何提高工程質量,如何提高工程效率也是我們要關注的,既然這些語法糖能輔助我們以更好的方式編寫代碼為什麼要“抵制“呢?
語法糖和其他編程思想一樣重要,什麼duck type,人本接口,最小接口,約定優於配置,廣義來講都是一些思想上的“語法糖“。
不過也並不是沒有反對的聲音,這其中就有圖靈獎的第一個獲得者: Alan Perlis。.net從2.0到3.0到3.5底層CLR並沒有做更新,沒有添加任何新的IL指令,所以C#從2.0到3.0中所有的特性都是語法糖,就算從1.0到2.0,也只有一個泛型不是語法糖,其餘的新特性也都是如此,但是每一次C#發佈新特性的時候我們不得不為之而鼓舞,為之而喝彩。新的語法可以釀造更好的編程風格,一些難以實現的方面也輕而易舉了。
需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我們帶來方便,是一種便捷的寫法,編譯器會幫我們做轉換;而且可以提高開發編碼的效率,在性能上也不會帶來損失。