一个Go语言接口和多操作系统实现的简单例子
尽管不是纯的OO语言,Go仍然提供了interface接口的功能,能够非常轻松地实现抽象与具体实现的分离。另外,按照文件名格式匹配的模式,Go程序可以自动帮你加载符合当前操作系统的对应接口实现(分析了编译时的.a包,发现编译时候自动匹配,并只把符合当前操作系统的实现打包),不需要程序员在程序里面使用if-else或者switch去实现,还算比较省心。[@more@]下面的例子,首先定义一个接口 I。接口I只有两个public的方法:Get() 和 Put()。注意方法名首字母必须大写。具体代码如下://myservice.gopackage myinterfacetype I interface { Get()
Go语言调用dll动态链接库的简单例子
今天研究了AllenDang(博客:http://www.cnblogs.com/AllenDang) 写的gform(一个go语言的windows图形库),也顺便学习了如何调用window的dll库。这里用C写了一个简单的功能函数gcd,然后编译打包成dll库。最后,写了一个go的调用例子hello.go。hello.go里面加载dll库,并调用gcd函数获取返回结果。 注意:为了运行例子,需要已经安装好MinGW和go. [@more@]1、 C写的简单例子。/* File : example2.c */ /* Compute the greatest common divisor of positive integers */int gcd(int x, int y) { int g; g = y; while (x > 0) {
使用swig工具为go语言生成调用C、C++代码例子
swig开源项目(http://www.swig.org)为多种编程语言提供了相互访问的接口生成工具,这里面也包含了为go语言生成调用C、C++代码的功能。Go语言自带的cgo工具已经支持对C代码的调用,但对C++代码的支持确实不行,所以Go1已经把swig的C++这部分功能作为附带功能加入(参见Go源代码gomiscswig)。这样,C++这块的资源也可以被Go语言使用了。[@more@]1、为Go语言生成调用C语言的接口:根据swig的相关文档指导( http://www.swig.org/Doc2.0/Go.html#Go ),用swig自带的例子做测试。以下的例子都是在ubuntu12.04下测试完成的。例子来源swigwin
Go调用Java的一个简单例子
由于Java世界里有非常丰富的开源应用模型和轮子,而这些正是Go世界里面最缺乏的东西,所以我首先考虑的就是如何在Go里面调用现有的Java代码。早上写了个简单的Go调用Java的例子,在winxp环境下能够正常运行。这段代码比较简单,就是在Go代码里面去call一个叫Hello的java对象。而这个Hello .java功能也非常简单,就是接收一个参数,然后输出一行结果。调用的初始感觉还行,当然还需要后面做更复杂的案例测试。具体的代码如下:[@more@]// run_javapackage main import ( "fmt" "os/exec") /*** 调用一个Hello.class,并
模仿Go语言的Benchmark测试框架写了JAVA版的简化测试工具
为了更方便的进行JAVA和Go的性能对比,于是有了搞个和Go类似的Benchmark测试框架的念头。看了两天Go的Benchmark.go源代码,写了个JAVA版的简化Benchmark测试工具。目前仅仅支持测试指定的单个文件、指定的包和当前目录下的所有文件等3个功能。功能非常的简单,够我自己用了。这里下载性能测试框架的源代码:BenchmarkRunner.java[@more@]在阅读Go的源代码过程中,感觉Go的接口太灵活了,很多简化的写法,让不熟悉这种风格的人头大。一会是面向对象,一会又转成函数式编程,对从JAVA世界转过来的人来说,很不适应。在实现Benchmark工具的过
Go语言单元和性能测试的相关文档
为了帮助开发者对代码进行测试,Go语言也提供了相关的单元测试的基础框架。除此之外,Go语言还提供了简单的性能测试框架,给开发者提供了对比和改善算法的便利手段。Go语言的性能测试框架据说是参考了2002年JavaOne的《How NOT To Write A Microbenchmark》,它的基本测试机理是在一定时间内循环运行测试程序,并最终得出测试程序每次运行的平均时间。不仅如此,性能测试框架还支持输出用于性能调优用的了cpu和内存相关数据。从这方面看,我觉得要比Java、Scala好。[@more@]单元测试单元测试很重要,Go语言提供了相关的单元测试框架。允许
Go语言的开发环境配置的经验总结
在OSCHINA新搞了一个博客,但那里上传内容不方便,还是搬回来吧。传说go语言的最佳开发环境是苹果的XCODE,我测试的结果确实如此。需要用CGO编译带C代码的go程序的朋友,建议首选苹果的XCODE环境。Windows环境下配置CGO编译非常麻烦,因为Go的文档例子大多以UNIX为例子,所以有些C代码在windows下无法编译,需要修改代码。我用到的go语言版本是最新的发布版本go 1.0.2。下载地址:http://code.google.com/p/go/downloads/list[@more@]国人翻译的go官方安装文档的链接:http://code.google.com/p/golang-china/wiki/Install 。这个官方安装
回来了
在离开了技术领域 3年多后,重新回到技术领域,很多感触。3年多的时间,我跑去搞股票投资,总体收益还行。之所以重新回到技术领域,是因为感觉到中国经济正在从顶峰往下走,各类资产价格都面临着大幅下降的风险。因此,不打算继续搞投资了,还是回到自己喜欢的技术领域做点事情吧。 3年多的时光,技术领域冒出了不少新东西,够我折腾的了。感谢上帝,能做自己喜欢的事情就是一种幸福。[@more@]