Go1.5 改进摘要

Go1.5改进简介

1.纯Go(+少量汇编)实现 runtime 和 编译器

2.改进 垃圾回收器,支持并发 (有个指标好像是 停顿在 10 毫秒以内).

3.GOMAXPROCS认值改为 cpu 核数

4.internal限制规则推广到第三方包 (之前只有 std 包启用)

5.增加 vendor 支持,基本解决 第三方库的依赖问题和版本问题

6.增加 trace 命令,更友好的剖析程序运行状态

7.增加 go doc 命令


语法变化

增加 map 字面量. 以前的代码:

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

另外,vetcover已经稳定,移到核心仓库.

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语言。

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...