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

语法糖(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. animate inater插件_C4D R20插件下载 旧版插件C4D R20桥接插件INSYDIUMS Plug-In Bridge Cinema 4D R20 免费版 下载-脚本之家...
  2. mysql执行底层_天天写order by,你知道Mysql底层如何执行吗?
  3. 日报 18/07/22 您的设计模式!终于有时间开写~ ~
  4. js立即执行函数_《JS 函数的执行时机》
  5. 应届生开40万年薪?OPPO大手笔招揽芯片人才引热议
  6. OpenBSD同步时间
  7. 【Hadoop】Hadoop生态圈基本组件介绍
  8. C#-WinForm-ListView-表格式展示数据、如何将数据库中的数据展示到ListView中、如何对选中的项进行修改...
  9. JAVA复习 (期末重点考点总结)
  10. 先进激光三维成像雷达技术的研究进展与趋势分析
  11. 【2022年法定工作日,周末,节假日类型使用Java存入sql】
  12. lua服务器客户端消息回调,lua服务器客户端消息回调
  13. 将等号作为键值的js字符串转json
  14. 企业人才战略2.0 相信技术人的力量
  15. 网页界面滚动截图(长图)的三种实用方法总结
  16. SAGA GIS使用———加载以及显示影像
  17. nohup 命令的使用
  18. phpstudy访问不了php_初接触php,使用phpstudy运行php文件,访问路径中不能携带.php尾缀,否则报错...
  19. 消防工程师与消防员有什么区别?
  20. 选股器用计算机测试利润,ROE+市盈率选股 上周使用计算公式:总得分=营业净利润率+资产负债率+市盈率,来筛选股票。 因为笔者不会计算机编程,在计算历年平均值的时候... - 雪球...

热门文章

  1. c++ 输入一个日期,计算出该日期是这一年中的第几天(switch语句)
  2. ipv6内网穿透,有ipv6地址外网无法访问
  3. NodeJs C++ addon(插件nan方式)
  4. 交换机、路由器设备选型总结
  5. 无线网络组建之设备选型
  6. Pygame中blit( )方法讲解(Surface对象)
  7. 误删微信聊天记录觉得手足无措?免费教你如何恢复
  8. 哪些女生适合做JAVA软件开发?
  9. 扫雷——完整版!!!!!!
  10. 5星|戴蒙德《为什么有的国家富裕,有的国家贫穷》:为什么有的国家能发展出好制度...