語法糖(Syntactic sugar)

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

之所以叫「語法」糖,不只是因爲加糖後的代碼功能與加糖前保持一致,更重要的是,糖在不改變其所在位置的語法結構的前提下,實現了運行時的等價。可以簡單理解爲,加糖後的代碼編譯後跟加糖前一毛一樣。

之所以叫語法「糖」,是因爲加糖後的代碼寫起來很爽,包括但不限於:代碼更簡潔流暢,代碼更語義自然...寫着爽,看着爽,就像吃了糖。效率高,錯誤少,老公回家早...

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

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

語法糖和其他編程思想一樣重要,什麼duck type,人本接口,最小接口,約定優於配置,廣義來講都是一些思想上的“語法糖“。

需要聲明的是“語法糖”這個詞絕非貶義詞,它可以給我們帶來方便,是一種便捷的寫法,編譯器會幫我們做轉換;而且可以提高開發編碼的效率,在性能上也不會帶來損失。

https://blog.csdn.net/w372426096/article/details/80507783

發佈了55 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章