go的优势
-
go build集成了你需要的所有依赖(运行不需要安装其他的依赖),当然并不包括libc(几乎所有的其他程序运行都需要依赖libc),如果你使用cgo的话,你可以使用所有c语言库(不包括动态库)。 - 你可以拥有一个真正的静态二进制可执行文件。
- 易于安装,易于测试,易于采用移植。
-
go实现了自举(安装它,不需要安装其他依赖)。 -
IO异步,进程异步。 -
go能操作更底层的接口。 - 广泛的标准库和数据类型。
- 类
python的duck类型。 - 运行更快。
- 支持反射。
- 完备的开发环境
-
go doc:可以看任何包的文档。 -
go get:可以从github之类的仓库上获取依赖。 -
go fmt:统一处理换行、空格、tab等。 -
go test: 自带的测试类。 -
go mod: 项目模块化。 -
goproxy: 连接国内仓库下载。
-
- 交叉编译,在开发环境上,能为大部分机器型号编译生成二进制可执行文件。
| 操作系统 | 系统架构 |
|---|---|
| android | arm |
| darwin | 386 |
| darwin | amd64 |
| darwin | arm |
| darwin | arm64 |
| dragonfly | amd64 |
| freebsd | 386 |
| freebsd | amd64 |
| freebsd | arm |
| linux | 386 |
| linux | amd64 |
| linux | arm |
| linux | arm64 |
| linux | ppc64 |
| linux | ppc64le |
| linux | mips |
| linux | mipsle |
| linux | mips64 |
| linux | mips64le |
| netbsd | 386 |
| netbsd | amd64 |
| netbsd | arm |
| openbsd | 386 |
| openbsd | amd64 |
| openbsd | arm |
| plan9 | 386 |
| plan9 | amd64 |
| solaris | amd64 |
| windows | 386 |
| windows | amd64 |
go的缺点
- 冗长的异常机制。
- 缺乏泛型支持。
- 不尽成熟。
适用场景
- 网络
IO场景。 - 中间件场景。
- 处理比
Java、C#、Rust更底层的场景。








网友评论