C#6.0主要提供了一些语法糖,另外还提供了新的编译器Roslyn地址https://github.com/dotnet/roslyn一下列举几个新增的语法糖:1.构造一个类:public class A{ public long ID{get;set;}=1; public string Na.....
在haskell中,我们有语法糖‘do’帮助表达monad运算。scala中我们也有相应语法糖‘for’。 for表达式会被scala compiler做一些变换,简单的例子如下: for { a foo.flatMap((a) => { bar.map((b) => { a + b })
})
所...
分类:
其他好文 时间:
2015-03-12 14:46:34
阅读次数:
153
在了解装饰器的之前一定要先了解函数作为参数传递, 什么是函数内嵌,请参考我之前写的博客函数简介
python装饰器思想有点类似设计模式的装饰模式, 其意图是动态地给函数对象添加额外的功能.比如像增加日志打印的功能,有点面向切面编程(AOP)的感觉.装饰器语法以@开头,接着后面跟着的是装饰器的名字和可选的参数.装饰器语法是一种语法糖.
格式如下@decomaker(deco_args)
de...
分类:
编程语言 时间:
2015-03-11 19:48:49
阅读次数:
208
Y combinator 的推导过程最近在看《暗时间》,书中有Y组合子的推导过程,初看时很难理解,这里记录一下加深记忆,我们使用Scheme语言的语法。我们知道Scheme中可以这样定义递归函数(define (func n)
(if (= n 0)
1
(* n (func (- n 1)))))但是我们知道define这个函数只起到了一个语法糖的效果,再对...
分类:
其他好文 时间:
2015-02-19 23:01:48
阅读次数:
487
以下是本人的一点拙见,欢迎指正。TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程。那先来看看TypeScript是如何解决这两个问题的。一. 编译时的强类型T...
分类:
其他好文 时间:
2015-02-16 16:54:27
阅读次数:
371
C++ 语言标准这些年进化的很快,许多新引入的特性我都没有用过。说实话自己也比较懒,总是觉得自己对C++ 的掌握程度已经足够应付日常的各种项目了,所以没有学习新特性的动力。而且一直觉得新引入的特性多数都属于那种“语法糖”,能够发挥的作用不大,其实是可有可无的。
不过最近编写一个小程序时代码里有个小bug,困扰了我好几天。最后在几个热心网友的帮助下才解决了。这个小bug让我认识到C++11 中提供...
分类:
编程语言 时间:
2015-02-14 11:02:16
阅读次数:
297
一、前言 还记得JDK1.4时遍历列表的辛酸吗?我可是记忆犹新啊,那时因项目需求我从C#转身到Java的怀抱,然后因JDK1.4少了泛型这样语法糖(还有自动装箱、拆箱),让我受尽苦头啊,不过也反映自己的水平还有待提高,呵呵。JDK1.5引入了泛...
分类:
编程语言 时间:
2015-02-13 18:01:12
阅读次数:
211
扩展方法其实就是一个静态方法,只不过微软封装成了语法糖从MSIL中我们可以看出,这段代码编译后和调用静态方法没有任何的差别(从call指令来看,这是在调用一个静态方法)。从这里可以知道扩展方法即可以使用实例调用的方式也可以直接使用静态类调用的方式:str.GetValueByName("Length...
分类:
其他好文 时间:
2015-02-03 16:57:18
阅读次数:
176
事件的由来上文说到委托的安全性不佳,于是我们要将委托本身私有化,但还要暴露若干方法让外界使用。其中最重要的必然就是为委托挂接方法和调用委托,以便间接地调用委托所代表方法。那么事件event关键字就是c#提供给我们的一个语法糖。他并没有任何新的东西,只是减少了一些代码。所以,事件是一种特殊的委托,其特...
分类:
其他好文 时间:
2015-02-03 16:56:47
阅读次数:
202
事件的由来上文说到委托的安全性不佳,于是我们要将委托本身私有化,但还要暴露若干方法让外界使用。其中最重要的必然就是为委托挂接方法和调用委托,以便间接地调用委托所代表方法。那么事件event关键字就是c#提供给我们的一个语法糖。他并没有任何新的东西,只是减少了一些代码。所以,事件是一种特殊的委托,其特...
分类:
其他好文 时间:
2015-02-01 12:03:17
阅读次数:
254