一、Go开发环境搭建
-
环境:Windows10
-
安装Go语言包:
-
首先安装:go1.4.windows-amd64.msi
-
配置好环境变量:GOARCH, GOOS, GOROOT, GOPATH
-
-
然后安装:go1.11.windows-amd64.msi
-
-
安装sublime text 3和gosublime插件:
-
安装Package Conctrol:
-
从https://github.com/wbond/package_control下载package_control。
-
将下载好的package_control文件夹,重命名为Package Control。
-
在sublime软件中,依次点击:Preferences -> Browse Packages,会打开一个文件夹。
-
将重命名好的Package Control文件夹拷贝至该文件夹中。
-
重启sublime
-
-
通过Package Control安装gosublime插件时,提示"There are no packages ...":
-
Sublime Text 2学习参考:https://lucifr.com/2011/08/31/sublime-text-2-tricks-and-tips/
二、语言特性
-
自动垃圾收集:
-
C语言内存检查工具:Rational Purify, Compuware BoundsChecker, Parallel Inspector
-
-
更丰富的内置类型:
-
字典类型(map)和数组切片(slice,可以认为是动态数组)好评。
-
-
函数多返回值:
-
错误处理:
-
三个关键字用于标准的错误处理流程:defer、panic、recover。
-
-
匿名函数和闭包:
-
在Go语言中, 所有的函数都是值类型。
-
-
类型和接口:
-
类型:Go语言中的类型(struct)不支持继承和重载,仅支持基本的组合。
-
接口:非侵入式接口。类型与接口间没有明确的指定关系,因此在接口修改后,类型无需就改。
-
-
并发编程:
-
goroutine间通信:推荐使用通道(channel)的方式通信,类似于linux中的管道。
-
goroutine间互斥:一个进程内的多个goroutine共享同一内存空间,访问共享内存中的变量时,可以使用sync包中的读写锁。
-
-
反射(reflection):
-
通过某类型的对象,获取类型的详细信息。
-
降低代码可读性,如非必要,不推荐使用。
-
需包含reflect包。
-
-
语言交互性:
-
主要体现在通过Cgo与C语言交互。
-
三、工程管理
-
编译和链接:
-
通过go build命令实现。该命令通过GOPATH和源文件中的import语句,得知程序的依赖关系。
-
摆脱了Makefile等构件文件的编写。
-
-
单元测试:
-
通过go test package_name运行包中的单元测试程序。
-
四、问题追踪与调试
-
打印日志:
-
fmt包中的Printf和Println函数。
-
log包中的日志函数。
-
-
gdb调试:
-
Go编译器生成的调试信息的格式为DWARFv3,gdb版本需高于7.1。
-