Mac Golang 开发环境配置

Golang 介绍

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
由罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,支持Linux、macOS、Windows等操作系统。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。

Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行计算模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有pipeline模型的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。

与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收功能、接口等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。

开发环境搭建(MaxOS)

安装 Golang SDK

1.Golang 官网,进入下载页面,选择对应自己操作系统的版本下载安装。

brew install go
go env

升级Golang

1.从官网下载最新的安装程序覆盖安装,安装包会替换原有的程序。

brew upgrade go

关于 GOROOT 和 GOPATH

GOROOT

/usr/local/go

GOPATH

/Users/username/gogo env

自从引用了GOMOD后 GOPATH 的概念逐渐弱化(现在基本都会使用gomod来管理依赖,可以忘掉gopath)。在集成开发环境中配置好默认的 GOPATH 后,使用gomod管理依赖,所有项目通过gomod下载的第三方依赖都会放到GOPATH下的pkg目录。

GOMOD

Golang从诞生之初就一直有个被诟病的问题:缺少一个行之有效的“官方”包依赖管理工具。其原因是在Google内部,所有人都是在一个代码库上进行开发的,因此并不是非常需要。但Golang变成一个社区化的工程语言之后,这个问题被放大了。

1.GOPATH不符合一般开发者习惯,大部分人更习惯maven、node modules之类的方式
2.GOPATH无法有效的管理版本依赖,没有一个地方能够表明依赖包的具体版本号,无法形成有效的版本配套关系

Golang 1.11 版本引入的 go mod ,其思想类似maven:摒弃vendor和GOPATH,拥抱本地库。

使用gomod也很简单在工程目录下执行:go mod init {module name},该命令会创建一个go.mod文件。

examples

  • http_demo.go
package main

import (
    "fmt"
    "github.com/asmcos/requests"
)

func main() {
    req := requests.Requests()
    resp, _ := req.Get("https://baidu.com")
    fmt.Println(resp.R.StatusCode)
    fmt.Println(resp.R.Header["Content-Type"])
}
  • go.mod
module HelloWorld

go 1.13

require (
    github.com/asmcos/requests v0.0.0-20181227105501-5384de75ad0b // indirect
)

使用集成开发环境开发Golang程序

在开发中我使用 Goland 来开发 GO 程序。

1.Preferences > Go > GOROOT 配置你GO的安装位置

2.Preferences > Go > Global GOPATH 配置你GOPATH位置

这两项配置后基本上就可以开心的开发GO程序了。