mac环境下go安装环境配置

#Golang 是什么

Go 亦称为 Golang(译注:按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言。

Golang 的主要关注点是使得高可用性和可扩展性的 Web 应用的开发变得简便容易。(译注:Go 的定位是系统编程语言,只是对 Web 开发支持较好)

为何选择 Golang

既然有很多其他编程语言可以做同样的工作,如 Python,Ruby,Nodejs 等,为什么要选择 Golang 作为服务端编程语言?

以下是我使用 Go 语言时发现的一些优点:
1.并发是语言的一部分(译注:并非通过标准库实现),所以编写多线程程序会是一件很容易的事。后续教程将会讨论到,并发是通过 Goroutines 和 channels 机制实现的。
2.Golang 是一种编译型语言。源代码会编译为二进制机器码。而在解释型语言中没有这个过程,如 Nodejs 中的 JavaScript。
3.语言规范十分简洁。所有规范都在一个页面展示,你甚至都可以用它来编写你自己的编译器呢。:smile:
4.Go 编译器支持静态链接。所有 Go 代码都可以静态链接为一个大的二进制文件(译注:相对现在的磁盘空间,其实根本不大),并可以轻松部署到云服务器,而不必担心各种依赖性。

环境配置

Golang 支持三个平台:Mac,Windows 和 Linux(译注:不只是这三个,也支持其他主流平台)。

1.安装
你可以在 https://golang.org/dl/ 中下载相应平台的二进制文件。(译注:因为众所周知的原因,如果下载不了,请到 https://studygolang.com/dl 下载)将下载下来的 go 文件解压在 document 里

2.编译器选择Visual Studio Code

3.环境变量

vi ~/.bash_profile```
1
2


export GOPATH=/Users/../Documents/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

1
2

编译

source ~/.bash_profile

1
2
3
4

查看是否设置成功

```$ go env

4.Visual Studio Code 设置

1
2
3
4
5
6
7
8
9
10
{
"go.buildOnSave": true,
"go.buildFlags": [],
"go.buildTags": "",
"go.lintOnSave": true,
"go.formatOnSave": true,
"go.gopath": "/Users/../go",
"go.goroot": "/usr/local/Cellar/go/1.10.3/libexec",
"workbench.colorTheme": "Visual Studio Dark"
}

第一个 hello world

所有 Go 源文件都应该放置在工作区里的 src 目录下。请在刚添加的 go 目录下面创建目录 src。
所有 Go 项目都应该依次在 src 里面设置自己的子目录。我们在 src 里面创建一个目录 hello 来放置整个 hello world 项目。

1.创建文件 helloworld.go

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("Hello World")
}

文件目录结构

1
2
3
4
go
src
hello
helloworld.go

2.运行程序
使用 go run 命令 - 在命令提示符旁,输入

go run workspacepath/src/hello/helloworld.go。```
1
2
3
4
5
6
7
8
9
10
 或者在编译器直接运行。  

3.现在简单介绍每一行大概都做了些什么,在以后的教程中还会深入探讨每个部分。

```
package main //1
import "fmt" //2
func main() {//3
fmt.Println("Hello World") //4
}

package main - 每一个 Go 文件都应该在开头进行 package name 的声明(译注:只有可执行程序的包名应当为 main)。包(Packages)用于代码的封装与重用,这里的包名称是main。
import “fmt” - 我们引入了 fmt 包,用于在 main 函数里面打印文本到标准输出。
func main() - main 是一个特殊的函数。整个程序就是从 main 函数开始运行的。main 函数必须放置在 main 包中。{ 和 } 分别表示 main 函数的开始和结束部分。
fmt.Println(“Hello World”) - fmt 包中的 Println 函数用于把文本写入标准输出。

#问题
1.could not launch process: debugserver or lldb- server not found: install XCode’s command line tools or lldb- server
image.png

解决方案:

xcode-select --install```
1
2
3
4
5
6
7

2.
Failded to continue:"Cannot find Delve debugger. Install from https://github.com/derekparker/delve & ensure it is in your "GOPATH/bin" or "PATH"
go get github.com/derekparker/delve/cmd/dlv

解决方案:
Visual Studio Code 设置

{
“go.buildOnSave”: true,
“go.buildFlags”: [],
“go.buildTags”: “”,
“go.lintOnSave”: true,
“go.formatOnSave”: true,
“go.gopath”: “/Users/../go”,
“go.goroot”: “/usr/local/Cellar/go/1.10.3/libexec”,
“workbench.colorTheme”: “Visual Studio Dark”
}
`