什么是语法糖?

问题

知乎问题:什么是语法糖?

求简要说明,最好能举个浅显的例子。

回答

我觉得语法糖(Syntactic Sugar)这个概念可以跟语言特性(Language Feature)作区分。

语法糖,比如装饰器的@写法,你不用它,还是可以实现对应的功能(而且像
@马致远 说的可以做到运行时等价->可以理解为表达不同,而语义等价),只是说写法繁琐一些。语法糖是语法(Syntax)层面的;

语言特性,比如闭包,如果语言内部没有实现,那么用这个语言你再怎么写也实现不了函数(这里不纠结“函数”的定义)内的自由变量。语言特性是语义(Semantics)层面的。

语法糖(盐、糖精...)可以类比于自然语言中的缩写/别称,而语言特性类比于语义/全名。语法糖存在的前提是对应功能的语义已经可以被实现(或者说有语言特性的支持),就像CN代表China,但首先得有China这个语义。

语言特性像是大道,语法糖像是捷径,而语法盐emmm...像是黑魂里的病村。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容