背景 GMock 我们项目中现在的模块测试框架使用了CATCH+GMock的方式实现回归测试和打桩。 GMock的介绍在官网上有,这里为了铺垫,大概地描述一下GMock能实现的效果。大约可以看成这样: void A() { if(B()) { //... } Else{ //... } } A是被测...
分类:
其他好文 时间:
2014-11-01 17:44:22
阅读次数:
192
6.4.2 使用 bind 函数
下一步,我们想消除外层的模式匹配,这,使用 Option.map 是做不到的,因为这个函数总是,输入为 None,转换后输出是 None,输入为 Some,转换后输出是包含其他值的 Some。在外层的模式匹配中,我们要做的事情根本不是这样,即使输入值是 Some,而如果读第二个输入失败,仍可能返回 None。这样,作为参数值的 lambda 函数指定的类型...
分类:
其他好文 时间:
2014-10-31 22:17:12
阅读次数:
268
Python特殊语法filter、map、reduce、lambda...
分类:
编程语言 时间:
2014-10-30 19:12:40
阅读次数:
199
使用备忘录模式(Memoization Pattern)提高性能
这个模式说白了,就是将需要进行大量计算的结果缓存起来,然后在下次需要的时候直接取得就好了。因此,底层只需要使用一个Map就够了。
但是需要注意的是,只有一组参数对应得到的是同一个值时,该模式才有用武之地。
在很多算法中,典型的比如分治法,动态规划(Dynamic Programming)等算法中,这个模式运用的十分...
分类:
编程语言 时间:
2014-10-30 10:23:31
阅读次数:
207
匿名方法是c#2.0引入的特性,并通过c#3.0的Lambda表达式得到发展,(请看我的另一片关于Lambda的整理).匿名方法类似于lambda表达式,但是没有以下特性:确定类型的参数表达式语法(匿名方法必须是语句块)在指定到Expression时,编译成表达式树的功能写您名方法的方法是:dele...
分类:
其他好文 时间:
2014-10-29 18:56:42
阅读次数:
153
Lambda表达式是写在委托实力上懂得匿名方法.编译器立即将lambda表达式转换成下面这两种形式委托实例Expression类型的表达式树,该表达式树将lambda表达式内的代码显示为可遍历的对象模型,是表达式的解释可以延迟到运行时.下面的委托类型: delegate int Transform....
分类:
其他好文 时间:
2014-10-29 16:22:15
阅读次数:
239
递归优化
很多算法都依赖于递归,典型的比如分治法(Divide-and-Conquer)。但是普通的递归算法在处理规模较大的问题时,常常会出现StackOverflowError。处理这个问题,我们可以使用一种叫做尾调用(Tail-Call Optimization)的技术来对递归进行优化。同时,还可以通过暂存子问题的结果来避免对子问题的重复求解,这个优化方法叫做备忘录(Memoizatio...
分类:
编程语言 时间:
2014-10-29 10:54:45
阅读次数:
395
CRL是一个面向对象的轻便型ORM业务框架数据处理使用了对象/数据映射,条件查询采用Lambda表达式来表示,增加了可编程性和可靠性,出错机率低,同时也能用原生的SQL实现查询或操作数据连接以编程方式进行配置,支持多个库,参见Global.asax中实现,首次使用请更改LocalSqlHelper....
分类:
其他好文 时间:
2014-10-28 17:02:00
阅读次数:
194
我遇到如下问题:
int count=0;
listener->onTouchMoved=[count](Touch* t,Event* e){
count++;
log("onTouchMoved");
};
Xcode下的编译错误为:Cannot assign to a variable captured by copy...
分类:
编程语言 时间:
2014-10-28 13:58:42
阅读次数:
166