第一章、初始Go语言

一、Go开发环境搭建

  1. 环境:Windows10

  2. 安装Go语言包:

    1. 首先安装:go1.4.windows-amd64.msi

      1. 配置好环境变量:GOARCH, GOOS, GOROOT, GOPATH

    2. 然后安装:go1.11.windows-amd64.msi

  3. 安装sublime text 3和gosublime插件:

    1. 参考:https://my.oschina.net/Obahua/blog/110767

  4. 安装Package Conctrol:

    1. https://github.com/wbond/package_control下载package_control。

    2. 将下载好的package_control文件夹,重命名为Package Control。

    3. 在sublime软件中,依次点击:Preferences -> Browse Packages,会打开一个文件夹。

    4. 将重命名好的Package Control文件夹拷贝至该文件夹中。

    5. 重启sublime

  5. 通过Package Control安装gosublime插件时,提示"There are no packages ...":

    1. 参考:https://www.cnblogs.com/jellify/p/9522477.html

  6. Sublime Text 2学习参考:https://lucifr.com/2011/08/31/sublime-text-2-tricks-and-tips/

二、语言特性

  1. 自动垃圾收集:

    1. C语言内存检查工具:Rational Purify, Compuware BoundsChecker, Parallel Inspector

  2. 更丰富的内置类型:

    1. 字典类型(map)和数组切片(slice,可以认为是动态数组)好评。

  3. 函数多返回值:

  4. 错误处理:

    1. 三个关键字用于标准的错误处理流程:defer、panic、recover。

  5. 匿名函数和闭包:

    1. 在Go语言中, 所有的函数都是值类型。

  6. 类型和接口:

    1. 类型:Go语言中的类型(struct)不支持继承和重载,仅支持基本的组合。

    2. 接口:非侵入式接口。类型与接口间没有明确的指定关系,因此在接口修改后,类型无需就改。

  7. 并发编程:

    1. goroutine间通信:推荐使用通道(channel)的方式通信,类似于linux中的管道。

    2. goroutine间互斥:一个进程内的多个goroutine共享同一内存空间,访问共享内存中的变量时,可以使用sync包中的读写锁。

  8. 反射(reflection):

    1. 通过某类型的对象,获取类型的详细信息。

    2. 降低代码可读性,如非必要,不推荐使用。

    3. 需包含reflect包。

  9. 语言交互性:

    1. 主要体现在通过Cgo与C语言交互。

三、工程管理

  1. 编译和链接:

    1. 通过go build命令实现。该命令通过GOPATH和源文件中的import语句,得知程序的依赖关系。

    2. 摆脱了Makefile等构件文件的编写。

  2. 单元测试:

    1. 通过go test package_name运行包中的单元测试程序。

四、问题追踪与调试

  1. 打印日志:

    1. fmt包中的Printf和Println函数。

    2. log包中的日志函数。

  2. gdb调试:

    1. Go编译器生成的调试信息的格式为DWARFv3,gdb版本需高于7.1。

猜你喜欢

转载自blog.csdn.net/liufuchun111/article/details/86620901