Go1.5改进简介
1.纯Go(+少量汇编)实现 runtime 和 编译器
2.改进 垃圾回收器,支持并发 (有个指标好像是 停顿在 10 毫秒以内).
3.GOMAXPROCS默认值改为 cpu 核数
4.internal限制规则推广到第三方包 (之前只有 std 包启用)
5.增加 vendor 支持,基本解决 第三方库的依赖问题和版本问题
6.增加 trace 命令,更友好的剖析程序运行状态
7.增加 go doc 命令
语法变化
m :=map[Point]string{ Point{29.935523,52.891566}: "Persepolis",Point{-25.352594,131.034361}:"Uluru",Point{37.422455,-122.084306}: "Googleplex",}
现在不需要每个都写Point了:
m :=map[Point]string{ {29.935523,{-25.352594,{37.422455,}
工具变化
之前的 6g/8g 之类的命令合并为一个了: go tool compile,
汇编器和连接器也同样合并为一个了: go tool asm,go tool link.
目标文件统一用 .o 为后缀.
跨平台编译更简单了:
$ exportGOOS=darwin GOARCH=amd64 $ go tool compile program.go $ go tool link program.o
另外,vet和cover已经稳定,移到核心仓库.
go build增加了-buildmode参数(Windows还不支持),
可以生成给C/C++使用的动态库和静态库(会有人用Go给Python/Ruby之类的语言写扩展吗?).
cgo 部分,Windows 终于支持外部链接,也就是可以静态编译链接C++库了.
同时,增加了一个${SRCDIR}参数,用于解决 link 时 当前目录变化导致找不到.a文件的问题.
标准库部分
http://tip.golang.org/doc/go1.5#library
感谢作者:chai2010
查看原文:Go1.5 改进摘要
关于我们:
码术微信号:codemanship
简介:“码术”致力于为探索程序世界,提升代码质量。加入“码术”,一起畅游01世界。目前,“码术”正在关注golang语言。
原文链接:https://www.f2er.com/go/190315.html