天天看點

什麼是文法糖?

定義:在計算機科學中,文法糖(syntactic sugar)是指程式設計語言中可以更容易的表達一個操作的文法,它可以使程式員更加容易去使用這門語言:操作可以變得更加清晰、友善,或者更加符合程式員的程式設計習慣。

具體來說,文法糖是指語言中的一個構件,當去掉該構件後并不影響語言的功能和表達能力。例如,C語言中的标記a[i]就是*(a+i)的文法糖。語言的處理器,包括編譯器,靜态分析器等,經常會在處理之前把文法糖構件轉換成更加基礎的構件,這個過程通常被稱為"desugaring"。

簡而言之,文法糖就是一種便捷寫法。

例如:input.map(a => a-8);

去掉文法糖就是:

什麼是文法糖?

通過例子你可以看出來,文法糖的使用其實就是讓我們的寫的代碼更簡單,看起來也更容易了解。

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

作者:重慶淡靜

繼續閱讀