Go语言-概况与安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guanchunsheng/article/details/78773383

机缘巧合,需要使用基于Go语言的开源项目,发现Go语言的开发效率和某些特性让我的开发工作变得轻松不少,因此学习了一些Go语言的知识,在实际工作中也用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 环境变量

环境变量 说明
GOROOT go语言的安装位置,比如 $HOME/go
GOARCH 386, amd64或者arm
GOOS darwin, freebsd, linux, windows
GOBIN 一般就是 $GOROOT\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。

扫描二维码关注公众号,回复: 3594705 查看本文章

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

1.4.2 IDE和调试

选一个编辑器,比如我用Notepad++,再加上一个LiteIDE就可以了。

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

print
println

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

panic可以获取栈跟踪信息。

猜你喜欢

转载自blog.csdn.net/guanchunsheng/article/details/78773383