欢迎光临散文网 会员登陆 & 注册

语法糖

2021-09-17 09:37 作者:萌新布告栏  | 我要投稿

什么是语法糖呢?好吃吗?

哈哈,开个玩笑,这个糖可不是吃的糖,它是由英国计算机科学家Peter J. Landin创作的一个技术术语。

语法糖也称为糖衣语法,是指在计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。

类比一下就像我们日常使用的一些缩写、别称或者是"黑话"、"暗语"等。都是用一种更加简练的语言表达复杂的含义。

如我们有人说"基操勿6",直意为“不要大惊小怪,这只是基本操作”,表现一种低调的得意。

当我们形容一个妹子的时候可以说她是"可盐可甜"等等的。

通过使用这些暗语、黑话,可以起到很多作用,如更加简洁、更加自然、效率高、错误少等。

而在编程语言中引入语法糖,在使用上同样可以起到使代码更加简洁、提升代码可读性、提升编程效率、降低程序出现错误的概率等。

以Java语言为例,Java作为一种高级语言,也是一种高糖语言。

如switch支持枚举及字符串、泛型、条件编译、断言、可变参数、自动装箱/拆箱、枚举、内部类、增强for循环、try-with-resources语句、lambda表达式等。

还有JDK 10中的局部变量类型推断、JDK 13中的文本块(Text Blocks),其实本质上都是语法糖。

摘取一段关于switch对String的支持的分析过程如下:

Java中的swith自身原本就支持基本类型。比如intchar等。对于int类型,直接进行数值的比较。对于char类型则是比较其ascii码。

所以,对于编译器来说,switch中其实只能使用整型,任何类型的比较都要转换成整型。比如byteshortchar(ackii码是整型)以及int

看下switchString得支持,有以下代码:

反编译后内容如下:

对比上面的代码,我们就能发现:字符串的switch是通过equals()hashCode()方法来实现的。

以上就是语法糖的相关内容,其他示例不再赘述。

语法糖的评论 (共 条)

分享到微博请遵守国家法律