go环境的安装

在linux虚拟机中安装分两步

  解压go包到/usr/local下

  wget https://studygolang.com/dl/golang/go1.10.linux-amd64.tar.gz

  cp go1.10.linux-amd64.tar.gz /usr/local

  tar zxvf go1.10.linux-amd64.tar.gz

  根据个人虚拟机目录不同,设置环境变量

  export GOROOT=/path/to/go/

  export PATH=$PATH:$GOROOT/bin/

  export GOPATH=/home/user/project/go

 

windows下安装直接下载文件一路next就可以了,https://golang.google.cn/doc/install?download=go1.11.4.windows-amd64.msi,设置环境变量使得go.exe能被找到

goland编辑器的安装

去 https://www.jetbrains.com/go/ 下载goland编辑器,goland并非免费,需要激活。激活有很多种方式,我找到一个激活码,可以使用一段时间 

 

 

go的第一个hello world程序,hello.go

使用go run hello.go运行它,输出hello,world

调试工具delve的安装

  go get github.com/derekparker/delve/cmd/dlv

用goland创建项目并运行

  可以参考这个博文 https://www.apa70.com/article/30.html 写的很详细 

 go的语言特性

1.垃圾回收:

  a 内存自动回收,不需要程序开发人员管理内存

  b 开发人员专注业务实现,降低 心智负担

  c 开发人员只需要new分配内存,不需要释放

2.天然并发:

  a 从语言层面支持并发,非常简单

  b goroutine 轻量级线程,创建千万个goroute成为可能

 

 

  c 基于csp(Communicating Sequential Process)模型实现

3.channel

  a  管道,类似unix/linux中的pipe

  b 多个goroutine之间通过channel进行通信

  c 支持任何类型

 

4.多返回值

  a 一个函数返回多个值

 

包的概念

  1. 和python一样,把相同功能的代码放到一个目录,称之为包

  2. 包可以被其他包引用

  3. main包是用来生成可执行文件,每个程序只有一个main包 

  4. 包的主要用途是提高代码的可复用性