一直不太理解语法糖的意思,闲来搜索了下原来如此

语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。举个例子:在C语言里用a[i]表示(a+i),用a[i][j]表示(*(a+i)+j),看来语法糖不是“现代语言”才有啊,连我们的老大哥C也有,而且这种写法简洁明了,也更好懂了。实际上从面向过程到面向对象也是一种语法糖啊,C语言可以通过它的指针、类型转换,结构实现面向对象的编程风格,但是C++更进一步的推广了这种风格,更好用了,不过到了C#把OO的风格发挥得淋漓尽致。OO的编程风格对于面向过程来说是不是一种语法糖呢?如果生硬地照此理解,只有计算机硬件指令才不算语法糖,而其他一切利用编译器、汇编器将代码抽象,和自然语言更相近的手段都算语法糖。现在很多很多编程思想,编程理论层出不穷,当然,对于学习来说我们是要抓住技术的核心,但对于工程来说如何提高工程质量,如何提高工程效率也是我们要关注的,既然这些语法糖能辅助我们以更好的方式编写代码为什么要“抵制“呢?我想语法糖和其他编程思想一样重要,什么duck type,人本接口,最小接口,约定优于配置,其实不都是一些思想上的“语法糖“?不过也并不是没有反对的声音,这其中就有图灵奖的第一个获得者: Alan Perlis。.net从2.0到3.0到3.5底层CLR并没有做更新,没有添加任何新的IL指令,所以C#从2.0到3.0中所有的特性都是语法糖,就算从1.0到2.0,也只有一个泛型不是语法糖,其余的新特性也都是如此,但是每一次C#发布新特性的时候我们不得不为之而鼓舞,为之而喝彩。新的语法可以酿造更好的编程风格,以前一些难以实现的方面现在也轻而易举了。需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。

原文连接

很傻很天真的问题: 什么是语法糖!相关推荐

  1. 女儿国疑案之二蝎子精之死——很傻很天真

    过年这几天忙得没时间上网,错过了"艳照门"事件,真是TNND一大损失,幸亏那些照片铺天盖地的,想不看看都不行,终于一个小妹妹露着很傻很天真的笑容出现在大众的面前,她完善了一些经典台 ...

  2. SnailOS0.03是很傻很天真!

    SnailOS003 SnailOS0.03是基于郑钢先生<操作系统真相还原>和川合秀实先生<30天自制操作系统>,当然也有一些网络上当来的代码,甚至还有一些自己杜撰的代码,不 ...

  3. mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻

    嗯,犯了一个很低级的错误,最近暴露出来了.html 背景:mysql 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms)git 2. 增长日志打点 ...

  4. mysql 索引 insert_mysql优化:定期删数据 + 批量insert + 字符串加索引为什么很傻

    嗯,犯了一个很低级的错误,最近暴露出来了. 背景: 1. 内部平台,接口间断性无返回,查询日志注意到失败时,接口耗时达到4000+(正常状态:100+ms) 2. 增加日志打点,在关键步骤插入时间戳, ...

  5. Java很傻,但是IDE很聪明,Intellij IDEA 是一款好产品

    投递人 itwriter发布于 2013-06-06 13:34评论(6)有532人阅读原文链接[收藏]«» @李先 Loki 来自伯乐在线 对于编程语言来说,什么是生产力?我觉得,更高的抽象层次就是 ...

  6. 很傻计算机的英语,用英语表达笨蛋,除了Stupid,还有其他的表达

    原标题:用英语表达笨蛋,除了Stupid,还有其他的表达 Are you stupid? 还单单只会用 fool 或 stupid 表示傻蛋 ?其实表示傻瓜的词很多,一些简单的词组也可以表示,比如 b ...

  7. [转移]犯了一个很傻的错误

    [转移]犯了一个很傻的错误 转移自自己原来在YourBlog上的Blog,写于2004-3-7 20:58:54 一个很简单的ADO.Net页面,怎么都无法浏览,总是提示sa用户登陆错误,但是在IDE ...

  8. 计算机硬盘拆分,扎心了!把电脑硬盘分成C、D、E、F盘其实很傻

    原标题:扎心了!把电脑硬盘分成C.D.E.F盘其实很傻 电脑硬盘分几个区最好?很多新购买的电脑硬盘只分了两个区,有些小伙伴觉得有些不习惯,有些小伙伴则是觉得电脑分区应该3个~5个之间.殊不知,电脑硬盘 ...

  9. 康益明爱崔紫娟-很爱很爱

    现在回想,曾经你是那么的爱我.可是我总是伤你.不懂得珍惜,现在后悔又有什么用?只能怪自己.每时每刻都在想你,真的好想好想,虽然我知道我对你的伤害,现在要追回你不容易,但是我会更努力的.曾经为了追你,翻 ...

最新文章

  1. Java开发web的几种开发模式
  2. 阿里七层流量入口 Tengine硬件加速探索之路
  3. ole db 访问接口 sqlncli 无法启动分布式事务_阿里终面:分布式事务原理
  4. 普及移动办公大业,促进数字转型升级——中国移动办公专家顾问团即将盛大亮相...
  5. 《文明之光 第二册》一一10.1 罗卡尔角的夕阳—— 葡、西的殖民时代(1)
  6. Python 多进程本机共享内存(二)
  7. 【BZOJ1475】方格取数 [最小割]
  8. 如何用U盘安装Windows操作系统
  9. 联想智能云教室_被低估的联想能复制微软之路吗? | 公司观察
  10. 洞悉物联网发展1000问之透过华为山海经看如何突破物联网关键技术?
  11. 梦幻手游最新服务器,《梦幻西游》手游服务器如何选择 新区还是老区
  12. 网页图片不能显示怎么办
  13. 竟然可以用Python操作 Word 文档,这么多的骚操作!
  14. 给公司取名的一些原则
  15. 【Codeforces】【161Div2】
  16. 如何彻底禁用 werfalut.exe
  17. 门诊排队叫号系统,有序叫号就诊,适用医院医院、门诊部、诊所等
  18. mc服务器怎么传送到我位置,我的世界联机怎么传送到队友身边_我的世界联机怎么传送到队友位置哪里身边手机版_攻略...
  19. 利用手机软件fing查询树莓派的ip地址
  20. 论光模块光电信号的转换和信号的调制

热门文章

  1. 关于8583报文详解
  2. 不必急于吹响裁判哨:“安卓禁令”后华为手机的变数与新机
  3. PS纳米纤维膜 聚苯乙烯 纤维直径500-2000nm
  4. 【X265】Win10环境编译FFmpeg,集成 x264、x265、avs2
  5. 微信小程序中进行地图导航
  6. 浅谈Warshall算法
  7. 洛谷p1200题目c语言代码,洛谷P1200 [USACO1.1]你的飞碟在这儿
  8. 如何把PDF中的一页内容替换掉
  9. 企业级运维——Mysql主从复制(异步、半同步、全同步)
  10. iOS在UIButton中换行