语法糖(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. 运算符重载:即为函数
  2. windows 下安装 scrapy报错:error: Unable to find vcvarsall.bat
  3. 神策用户标签系统,深入业务构建用户价值体系
  4. 怎么一步步编写简单的PHP的Framework(五)
  5. 复工之后,如何让自己的时间更值钱
  6. LeetCode MySQL 1159. 市场分析 II(rank+over)
  7. OpenCV3学习(11.7) BRISK特征检测器及BRISK描述符
  8. Unix/Linux 目录结构的来历
  9. bootdo增加验证码登陆
  10. android 蓝牙 录音,Android 实现蓝牙录音
  11. 【小墨mysql】mysql系列之一---索引
  12. Spring之IOC概念、Bean对象创建及DI注入的三种方式
  13. 尤雨溪 vue 3.0 Bate
  14. DDIM代码详细解读(3):核心采样代码、超分辨率重建
  15. insightface人脸识别代码记录(一)(数据前期准备)
  16. SQL SERVER中LEAD和LAG函数
  17. 腾讯企业邮箱收费标准多少钱一年 腾讯企业邮箱价格表
  18. GitLab CI/CD 多项目,多流水线制品合并方案
  19. Cindy Message/MessageRecognizer interface
  20. 搭建MineCraft私服

热门文章

  1. GoLang json格式化输出
  2. Codeforces Round #545 (Div. 2) C. Skyscrapers
  3. 史上最全的开源库整理
  4. creo三维生成二维图_proe5.0三维图转二维图
  5. qregexp括号匹配_qt中的正则表达式QRegExp使用大全以及匹配中括号[]方法大全
  6. java游戏猿人时代_猿人时代_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
  7. 婚宴座位图html5,婚宴座位图模版欣赏【婚礼纪】
  8. 华南农业大学C语言程序设计(实验六)
  9. 魔兽世界美服部落人数最多服务器,美服魔兽世界人口普查
  10. c盘扩容提示簇被标记_电脑C盘爆满飘红?系统卡?试试这两种解决办法