语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。

语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。

举个例子:在C语言里用a[i]表示(a+i),用a[i][j]表示(*(a+i)+j),看来语法糖不是“现代语言”才有啊,连我们的老大哥C也有,而且这种写法简洁明了,也更好懂了。

需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

实际上从面向过程到面向对象也是一种语法糖啊,C语言可以通过它的指针、类型转换,结构实现面向对象的编程风格,但是C++更进一步的推广了这种风格,更好用了,不过到了C#把OO的风格发挥得淋漓尽致。

OO的编程风格对于面向过程来说是不是一种语法糖呢?如果生硬地照此理解,只有计算机硬件指令才不算语法糖,而其他一切利用编译器、汇编器将代码抽象,和自然语言更相近的手段都算语法糖。

python语法糖是什么意思_python语法糖是什么相关推荐

  1. python语法用到了什么_Python语法的使用和简介

    前言 Python的语法和其它编程语言的语法有所不同,编写Paython程序之前需要对语法有所了解,才能编写规范的Python程序. 输入输出 print() # 打印显示 input() # 输入内 ...

  2. python中not加变量是_Python -- 语法和变量

    小Q:风一更,雪一更,聒碎乡心梦不成,故园无此声.           ----纳兰容若<长相思> -------------------------------------------- ...

  3. python九九乘法表右对齐_python语法练习题之九九乘法表

    九九乘法表 for...in方法实现 #方法一 for i in range(1, 10):for j in range(1, i+1):print('{}*{}={:<4}'.format(j ...

  4. 关于python序列类型的通用操作符_Python—语法基础(3) 序列类型及操作

    序列类型: 一维元素向量,元素类型可以不同,通过下标访问序列的特定元素,字符串类型.元组类型.列表类型属于序列类型 序列类型通用操作符: x in s 如果x是序列s的元素,返回True,否则返回Fa ...

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

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

  6. python 连续比较_python语法糖之连续比较表达式

    关于python的连续比较的语法糖 比如有如下形式: (a < b) and (b < c),这样子看起来不够好看. python中提供了连续比较的语法糖: a < b < c ...

  7. python中的常量是指_python入门教程04-01(python语法入门之变量)

    上一课我们学习了编程语言与python介绍,我们接下来的任务就是学习python语法入门的课程了. 本章的主题是先带大家了解下语法入门介绍,然后重点介绍python变量. 一 引入 我们学习pytho ...

  8. python中ht_python – 解析HTSQL时处理语法歧义

    我正在编写一个语法来解析HTSQL语法,并坚持如何处理段和除法运算符的/字符重用. described grammar并不是非常正式,所以我一直在关注Python实现的确切输出,从粗略的一瞥似乎是一个 ...

  9. Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 在 C/C++/Java 等等语言中,整型变量的自增或自减操作是标 ...

最新文章

  1. Jmeter(六)关联之XPath提取器
  2. Modular Multiplicative Inverse(模乘逆元)
  3. wordpress漏洞_WordPress站点恶意JS注入漏洞分析
  4. IT部门的服务工作方式、工作内容有了彻底的改变——安徽移动通信有限责任公司...
  5. html鼠标划过显示图片,jquery实现鼠标滑过小图查看大图的方法
  6. 如何打造高效的多任务、高并发的网络服务器系统?
  7. Win10下VS2015(WDK10)驱动开发环境配置
  8. HTML中id、name、class 区别
  9. VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。...
  10. java代码中获取classpath路径
  11. emacs java自动import,在Java模式如何我配置Emacs,这样就不会自动对齐方法参数
  12. 连续arq协议的利用率_Chrome底层原理和HTTP协议 - 石吴玉
  13. java column_@Column注解属性详解
  14. ZeroMQ 的模式
  15. Windows 不能在 本地计算机 启动 SQL Server(MSSQLSERVER) 10048
  16. 9.性能之巅 洞悉系统、企业与云计算 --- 磁盘
  17. IT博客大赛,快来围观!【人艰不拆】
  18. dell计算机自动开机设置,dell台式电脑定时开机设置教程
  19. 【 leetcode Top 100】64. 最小路径和
  20. 计算机软件工程国家标准汇编目录

热门文章

  1. 【15】opencv卷积运算
  2. c语言超市选址问题实验报告,数据结构课程设计-超市选址问题.doc
  3. 使用awk命令分析nginx日志定位响应慢的java接口
  4. Linux常用命令(附视频教学)
  5. DEDECMS优化教程:让搜索更快收录你的站点!
  6. 常见的 Webshell 查杀工具
  7. 「组装式开发」企业数字化转型的及时雨
  8. python中loc什么意思_在python中使用.loc选择
  9. Apache mina,Netty的起源和历史
  10. android--mediaplayer的seekTo用法