php5.3.* 5.4.* 编译出现checking size of char… configure: error: cannot compute sizeof (char)时的正确解决方案

php5.3.* 5.4.* 编译出现checking size of char… configure: error: cannot compute sizeof (char)错误时,网上现在流行的解决版本是去掉disable-rpath,正确的解决方案是由于动态动态连接库的地址不对。在执行configure前执行下面的语句就可以通过: export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib

防止装箱落实到底,只做一半也是失败

.NET提供struct类型,正确使用可以减少对象数量,从而降低GC压力,提高性能。不过有时候我会发现,某些同学有这方面的意识,但是有时候一疏忽一偷懒,就没有得到相应的效果了。这里举一个真实的例子:假设我们要将一对int作为字典的键,用于映射到某些数据,那么你会怎么做?当然我们可以直接使用Tuple<int, int>,但这样就可能产生大量的对象。于是我们打算使用自定义的值类型: private struct MyKey { private readon

为什么我不喜欢Go语言式的接口(即Structural Typing)

所谓Go语言式的接口,就是不用显示声明类型T实现了接口I,只要类型T的公开方法完全满足接口I的要求,就可以把类型T的对象用在需要接口I的地方。这种做法的学名叫做Structural Typing,有人也把它看作是一种静态的Duck Typing。除了Go的接口以外,类似的东西也有比如Scala里的Traits等等。有人觉得这个特性很好,但我个人并不喜欢这种做法,所以在这里谈谈它的缺点。当然这跟动态语言静态语言的讨论类似,不能简单粗暴的下一个“好”或“不好”的结论。 那么就从