究竟什么是语法糖呢
2015-01-14 22:54
399 查看
其实语法糖只是一个概念,大家可能很早就在接触语法糖了,只是一直不知道这个就是语法糖
百科原话:语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。
这里有两点需要注意的:
1语法糖的目的:是为了让代码更易读,更容易让人理解。
2语法糖的本质:只是一种新的编码方式,并没有给语言增加新的功能
比如 C语言中 如果数组用指针的形式表示某元素的话
1 a[i]表示 *(a+i)
a[i][j] 表示 *(*(a+i)+j) 这在本质上并没有给c增加新的功能,但是读起来却方便很多
在C#中比如:
1 public string MyName { get; set; }
表示:
在此需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法。(貌似每个介绍语法糖的文章都会来这么一句)很多人觉得写原生的方法时不是效率更高,其实不然,在程序编译过程中,编译器已经会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。
百科原话:语法糖(Syntactic sugar),是由Peter J. Landin(和图灵一样的天才人物,是他最先发现了Lambda演算,由此而创立了函数式编程)创造的一个词语,它意指那些没有给计算机语言添加新功能,而只是对人类来说更“甜蜜”的语法。语法糖往往给程序员提供了更实用的编码方式,有益于更好的编码风格,更易读。不过其并没有给语言添加什么新东西。
这里有两点需要注意的:
1语法糖的目的:是为了让代码更易读,更容易让人理解。
2语法糖的本质:只是一种新的编码方式,并没有给语言增加新的功能
比如 C语言中 如果数组用指针的形式表示某元素的话
1 a[i]表示 *(a+i)
a[i][j] 表示 *(*(a+i)+j) 这在本质上并没有给c增加新的功能,但是读起来却方便很多
在C#中比如:
1 public string MyName { get; set; }
表示:
在此需要声明的是“语法糖”这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法。(貌似每个介绍语法糖的文章都会来这么一句)很多人觉得写原生的方法时不是效率更高,其实不然,在程序编译过程中,编译器已经会帮我们做转换;而且可以提高开发编码的效率,在性能上也不会带来损失。
相关文章推荐
- 从jvm来看,scala中的@究竟是个什么鬼?@模式匹配符号(scala 词法分析 语法分析 常用)
- C++中定义对象的语法,带括号与不带括号有什么区别?
- Java程序员成长之路(接口与抽象类究竟有什么区别)
- "=="和equals方法究竟有什么区别?
- 不经常用 居然会忘记 语法什么的!! switch… case 语句的用法
- JFrame的层次结构究竟是什么样的,什么又是ContentPane
- 究竟什么是POJO?
- “熊猫烧香”究竟在祈祷什么?
- Linux里的2>&1究竟是什么
- WebService究竟是什么?
- Python的GIL是什么鬼,多线程性能究竟如何
- 微信企业号究竟带来了什么?
- 上大学究竟是来干什么的?为什么会这样?
- java中的mvc和三层结构究竟是什么关系
- 对初学者究竟从什么语言学起剖析
- app测试员究竟测些什么呢?
- 究竟什么是开发人员眼中最好的代码编辑器?
- 程序员在大学里究竟应该学习什么?
- 从输入网址到显示网页,这个过程究竟发生了什么?
- <大话西游>究竟讲了一个什么故事