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
更底层的场景。
网友评论