Go语言-概况与安装

机缘巧合,需要使用基于Go语言的开源项目,发现Go语言的开发效率和某些特性让我的开发工作变得轻松不少,因此学习了一些Go语言的知识,在实际工作中也用Go写了一点东西。
为节省时间,这里摘要一些学习心得和实际体会,注重简短易读,方便快速浏览复习。
主要参考

  • 《the way to go》,https://github.com/Unknwon/the-way-to-go_ZH_CN
  • 《Go程序设计语言》

1. Go语言概况

1.1 设计

  • 编译快
  • 执行快
  • 开发简单

高效需要静态语言特性,开发简单需要动态语言特性,所以Go是结合动静两种语言的特性来设计的。

1.2 适用方向

  • 网络通信
  • 并发/并行编程

对于分布式和多核计算机特别适用。关键特性是gotoutinechannel
后端的Web服务器,高性能分布式系统,游戏服务端的海量并行,都可以从Go语言特性中受益。

其他的诸如文本处理,前端呈现,脚本,都可以用Go搞一搞。

有垃圾回收和自动内存分配功能,所以实时性要求很高的软件慎用。

1.3 安装准备

1.3.1 Linux上安装Go

偷个懒就直接用yum或者apt安装了:

yum install golang
或者
apt-get install golang

1.3.2 环境变量

环境变量说明
GOROOTgo语言的安装位置,比如 $HOME/go
GOARCH386, amd64或者arm
GOOSdarwin, freebsd, linux, windows
GOBINbin目录的位置,用于go工具 go install生成可执行文件,如果设置为空,那么就是在 GOPATH/bin下
GOPATH一般在哪个目录下工作,就设置到哪里,其中会src, pkg和bin这几个固定的目录,后续项目结构部分会有更细致介绍
GOMAXPROCS设置程序可以使用的处理器个数和核数

1.3.3 Windows上安装Go

可以下载windows版本的Go语言安装文件,因为墙的存在,可以从Go语言中文网的下载页面去下载。

按照默认安装即可。
在命令行中试验命令:

go version

查看安装是否成功,windows使用可以配合IDE或者直接文本编辑器+powershell,也是挺方便的。

1.4 其他概念

1.4.1 运行时

Go是有运行时的,跟JVM差不多,会做内存分配,垃圾回收,栈处理,goroutine,channel,slice,map和relfection等等工作。

运行时从Go 1.5开始是自举的。有兴趣可以看代码 $GOROOT/src/tuntime。

Go可执行文件一般比较大,说明Go的运行时都嵌入到可执行文件中了,这点非常好,虽然文件大一点,但是整洁很多,只要一个文件就可以跑了,不需要搞复杂的运行环境等等蛋疼的问题。

1.4.2 IDE和调试

选一个编辑器,比如我用VS Code。

调试不完善,与其跟调试器作斗争,不如多打点log就完事了。

log.Println
fmt.Print
fmt.Println
fmt.Printf //%+v:包括字段的实例信息;%#v:包括字段和限定类型名称的实例信息;%T 某个类型的完整说明

panic可以获取栈跟踪信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值