語法糖
什么是語法糖呢?好吃嗎?
哈哈,開個玩笑,這個糖可不是吃的糖,它是由英國計算機科學家Peter J. Landin創(chuàng)作的一個技術術語。
語法糖也稱為糖衣語法,是指在計算機語言中添加的某種語法,這種語法對語言的功能并沒有影響,但是更方便程序員使用。
類比一下就像我們日常使用的一些縮寫、別稱或者是"黑話"、"暗語"等。都是用一種更加簡練的語言表達復雜的含義。
如我們有人說"基操勿6",直意為“不要大驚小怪,這只是基本操作”,表現(xiàn)一種低調的得意。
當我們形容一個妹子的時候可以說她是"可鹽可甜"等等的。

通過使用這些暗語、黑話,可以起到很多作用,如更加簡潔、更加自然、效率高、錯誤少等。
而在編程語言中引入語法糖,在使用上同樣可以起到使代碼更加簡潔、提升代碼可讀性、提升編程效率、降低程序出現(xiàn)錯誤的概率等。
以Java語言為例,Java作為一種高級語言,也是一種高糖語言。
如switch支持枚舉及字符串、泛型、條件編譯、斷言、可變參數、自動裝箱/拆箱、枚舉、內部類、增強for循環(huán)、try-with-resources語句、lambda表達式等。
還有JDK 10中的局部變量類型推斷、JDK 13中的文本塊(Text Blocks),其實本質上都是語法糖。
摘取一段關于switch對String的支持的分析過程如下:
Java中的swith
自身原本就支持基本類型。比如int
、char
等。對于int
類型,直接進行數值的比較。對于char
類型則是比較其ascii碼。
所以,對于編譯器來說,switch
中其實只能使用整型,任何類型的比較都要轉換成整型。比如byte
。short
,char
(ackii碼是整型)以及int
。
看下switch
對String
得支持,有以下代碼:

反編譯后內容如下:

對比上面的代碼,我們就能發(fā)現(xiàn):字符串的switch是通過equals()
和hashCode()
方法來實現(xiàn)的。
以上就是語法糖的相關內容,其他示例不再贅述。