语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

之所以叫「语法」糖,不只是因为加糖后的代码功能与加糖前保持一致,更重要的是,糖在不改变其所在位置的语法结构的前提下,实现了运行时的等价。可以简单理解为,加糖后的代码编译后跟加糖前一毛一样。

之所以叫语法「糖」,是因为加糖后的代码写起来很爽,包括但不限于:代码更简洁流畅,代码更语义自然…写着爽,看着爽,就像吃了糖。效率高,错误少,老公回家早…

据说还有一种叫做「语法盐」的东西,主要目的是通过反人类的语法,让你更痛苦的写代码。其实它同样能达到避免代码书写错误的效果,但编程效率应该是降低了,毕竟提高了语法学习门槛,让人咸到忧伤…

最基本的,for循环就是一个语法糖:

for(int i = 0; i < 5; i ++){}

而实际上跟while没啥区别:

int i = 0;
while ( i <5 ){...i ++;
}

Python中也有非常多的语法糖,比如:

i = a if a < b else b

这与下面的代码是同样的效果

if a < b:i = a
elsei = b

什么是语法糖(syntactic suger)相关推荐

  1. C# 语法糖(Syntactic sugar)

    定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能 ...

  2. python语法糖是什么_Python语法糖Syntactic Sugar

    语法糖(Syntactic sugar): 计算机语言中特殊的某种语法 这种语法对语言的功能并没有影响 对于程序员有更好的易用性 能够增加程序的可读性 简而言之,语法糖就是程序语言中提供[奇技淫巧]的 ...

  3. 语法糖 Syntactic sugar: 复杂代码的等价简洁替代

    语法糖(Syntactic sugar) 在不改变代码所在位置.语法结构的前提下,实现了运行时的等价代码更简洁流畅,代码更语义自然,可读性高 写着爽,看着爽,就像吃了糖,效率高,错误少 例: 最基本的 ...

  4. Java 中的语法糖 (Syntactic Sugar)

    语法糖(Syntactic Sugar),也叫糖衣语法,是英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语.指的是,在计算机语言中添加某种语法,这种语法能使程序员更方便 ...

  5. syntactic sugar - 语法糖 - 糖衣语法

    syntactic sugar - 语法糖 - 糖衣语法 语法糖 (syntactic sugar),亦称为糖衣语法,是英国计算机科学家彼得 - 约翰 - 兰达 (Peter J. Landin) 发 ...

  6. ef 在此上下文中只支持基本类型或枚举类型_Java 中的 6 颗语法糖

    作者:Java 技术栈来源:SegmentFault 思否社区 原文作者:danchu原文链接:https://blog.csdn.net/danchu/article/details/5498644 ...

  7. java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...

    Java语法糖概念 1. 语法糖Syntactic Sugar 糖衣语法,方便开发人员使用,JVM并不识别,会在编译阶段解语法糖,还原为基础语法. 2. com.sun.tools.javac.mai ...

  8. 很傻很天真的问题: 什么是语法糖!

    一直不太理解语法糖的意思,闲来搜索了下原来如此 语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编 ...

  9. C#【汇总篇】语法糖汇总

    文章目录 0.语法糖简介 1.自动属性 2.参数默认值和命名参数 3.类型实例化 4.集合 4.1 初始化List集合的值 4.2 取List中的值 5.隐式类型(var) 6.扩展方法[更换测试实例 ...

  10. JavaScript中的 语法糖 是什么?

    专业的解释 在计算机科学中,语法糖(syntactic sugar)是指编程语言中可以更容易的表达一个操作的语法,它可以使程序员更加容易去使用这门语言:操作可以变得更加清晰.方便,或者更加符合程序员的 ...

最新文章

  1. linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
  2. C#学习笔记(十四):StatusBar控件
  3. 解码base64_linux C++ Base64编解码
  4. 我喜欢这样的老大[10-24]
  5. linux的基础知识——网络套接字函数
  6. 【SQL那些事】事务
  7. kubernetes挂载存储
  8. 微信小程序环境下将文件上传到 OSS
  9. mysql url认证_Springboot+shiro基于url身份认证和授权认证
  10. webpack-开发服务器-配置
  11. 1-n奇数之和c语言,c语言1-n奇数之和
  12. OSChina 周三乱弹 ——怎么样防止隔壁老王
  13. win10锁屏壁纸的提取方法
  14. 搜狐Q3由盈转亏:预计全年收入下滑12%,张朝阳归因于不确定性
  15. 2020年软文对于一个企业网站的重要性
  16. python写公众号_python如何编写公众号
  17. 数据库设计需要注意什么?
  18. OSINT和被动侦察
  19. 学习笔记:光电耦合器PC817
  20. 导弹发射各项参数计算涉及计算机应用,按计算机用途分类

热门文章

  1. 新兴基金经理凯瑟琳·伍德ARKK基金在 2022 年初遭受新的打击
  2. 计算机键盘按键错乱,笔记本键盘按键错乱怎么办 解决笔记本电脑个别按键功能错乱...
  3. NOIP 模拟题 国际跳棋
  4. 启明云端分享|IDO-SOM3022-V1.0:可适用于物联网等多个领域
  5. android logo颜色渐变,华为悄然更新品牌Logo:无渐变色,更加扁平化
  6. 泛微OA系统排名?泛微OA办公系统怎么选?什么是用户口碑最好的泛微OA系统?
  7. 披萨门 pizzagate
  8. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(5)- 语音识别实现(SpeechRecognition, PocketSphinx0.1.15)
  9. js计算文件MD5值
  10. 魔兽世界服务器同时在线人数,魔兽世界服务器人数,魔兽世界服务器人数查询...