go语言学习之环境安装(一)

188 阅读2分钟

go语言介绍

go语言出身豪门,有IT界三位大佬合作开发。是一种C系语言。具有高并发的特性。性能优越。

go语言在云计算领域有着极大的市场空间,在云计算领域。明星项目,docker,eted, kubernetes,harbor皆使用go编写。go强大的网络编程,原生支持高并发。

go的优点

  • 可直接编译成机器码,不依赖其他库
  • 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高
  • 语言层面支持并发,这是Go语言的最大的特色,天生支持并发
  • 内置runtime,支持垃圾回收机制
  • 简单易学,有C语言的基因,Go语言有25个关键字,但是表达能力极强
  • 丰富的标准库,内置大量库,特别是网络库非常强大
  • 内置强大工具,使review变的简单,可以使代码格式一模一样
  • 跨平台编译,可以不依赖与系统信息
  • 内置C支持

go存在的不足

当然go相对其它语言也有很多的不足,可能最大的一点就是很多程序员入门时遇到的一个问题GOPATH,需要配置工作空间。

另一个大的不足之处就是第三方包的管理,虽然现在有一些方案,但都不十分完美。

多版本环境安装

go运行环境安装文章很多,在此介绍一种多版本管理的安装方式gvm.

gvm 是一个go语言多版本管理工具,可以方便的切换语言版本环境。

安装gvm

bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)  

使用 GVM

$gvm
Usage: gvm [command]

Description:
  GVM is the Go Version Manager

Commands:
  version    - print the gvm version number
  get        - gets the latest code (for debugging)
  use        - select a go version to use (--default to set permanently)
  diff       - view changes to Go root
  help       - display this usage text
  implode    - completely remove gvm
  install    - install go versions
  uninstall  - uninstall go versions
  cross      - install go cross compilers
  linkthis   - link this directory into GOPATH
  list       - list installed go versions
  listall    - list available versions
  alias      - manage go version aliases
  pkgset     - manage go packages sets
  pkgenv     - edit the environment for a package set

GOPATH管理

在多项目环境下开发时,常设置多个workspace,通过gvm可以动态的切换环境变量。

  • 创建pkgset
 gvm pkgset create dev1 

``



- 切换到该配置下

gvm pkgset use dev1

- 设置GOPATH

gvm pkgenv dev1

会显示dev1的相关环境变量的配置信息,修改其中的GOPATH和PATH的环境变量的信息,将要设置的workspace的工作目录的路径添加到对应配置信息的前边。