用GO实现的erlang的genfsm.

关于erlang的有限状态机,参考erlang四大behaviour之二-gen_fsm这篇文章。 有限状态机可以用下面这个公式来表达 State(S) x Event(E) -> Actions(A), State(S') 这两天正好空闲,就用golang实现了一下,话不多说,直接上代码 package util import ( "errors" "reflect" "sync" "time" "unicode" "unicode/utf8" "util/log" ) var typeOfE...阅读全文

阅读:3615 评论:0

在Go包里添加C代码并且不使用CGO(不需要gcc)

如果go代码里使用了cgo,那么编译的时候电脑上必须按照gcc才能正确编译 这篇文章展示了如何用c写一个包让go调用并且不需要使用cgo A 需要注意的: 1. C代码天生的不安全 2. Go1的兼容性保证不包括C代码 3. C函数不能inline 4. 逃逸分析不能跟踪传递到C函数里的value (逃逸分析:http://kenwublog.com/jvm-optimization-escape-analysis) 5. C编译器(5c,6c,8c)没有对应的Go编译器优化做的好,因此生成的代...阅读全文

阅读:5223 评论:0

Go语言实战 - 使用SendCloud群发邮件

转自:http://www.kuqin.com/shuoit/20140303/338368.html 山坡网需要能够每周给注册用户发送一封名为“本周最热书籍”的邮件,而之前一直使用的腾讯企业邮箱罢工了,提示说发送请求太多太密集。 一番寻找之后发现了大家口碑不错的搜狐SendCloud服务,看了看文档,价格实惠用起来也方便,于是准备使用它做邮件发送服务器。按照文档的配置一步步走下来发现在发送邮件的时候竟然出错了,错误提示是“unencrypted connection”,奇怪了。 由于用的是sm...阅读全文

2015-01-12 10:43 zhenxing1114
阅读:6314 评论:0

golang 编码转换 gbk

(一)golang 官方转换包 go get golang.org/x/text/encoding https://godoc.org/golang.org/x/text 注:Go里面内建仅支持UTF8字符串编码,因此如果你用fmt.Printf之类的函数无法正常打印出字符串内容,而只能是一堆乱码! 导入package: import ( "bytes" "fmt" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text...阅读全文

2015-01-07 10:37 ziyouzhiqiu
阅读:40666 评论:4

Go语言总结和学习指南

早在2009年11月google刚推出go语言的时候,在好奇心的驱使下,就下载体验过。那时的感觉是语法比较奇怪,相关的资源较少,并且习惯了动态语言Python。虽然它一出来就宣称是一种为并发能力而生的语言,但是感觉Python已经能够满足自己的日常的开发要求,所以并不感觉它有什么优势。 但是也在持续的关注它一点一点的发展:发现越来越多的项目采用go作为开发语言来开发程序,也越来越多的程序员,包括Python的程序员,在使用go语言。如今,go1.4 已经支持Android开发,有空又把go拿出来...阅读全文

2015-01-10 19:01 I2Cbus
阅读:3665 评论:1