安装 go 语言开发环境

0、环境

windows10 ,64位

1、安装 VSCode 编辑器

Visual Studio Code 官网
官网下载即可

2、安装 golang

3.1安装

go语言官网提供了不同平台的安装。
如果无法访问可访问谷歌中国官网

3.2 设置环境变量

  1. 创建工作空间
    bin:编译后生成的可执行文件
    pkg:编译时生成的中间文件
    src:源代码
    src 里可以分文件夹来存储多个项目的源代码
    在这里插入图片描述

  2. 配置环境变量
    在这里插入图片描述
    GOROOT:安装路径
    GOPATH:工作路径

双击Path
在这里插入图片描述

添加如下三条
在这里插入图片描述

  1. 检查配置
    打开 Windows powershell
    输入 go env
    在这里插入图片描述

打开命令行窗口
输入go在这里插入图片描述
安装golang成功

3.3 创建 hello world!

gosrc目录创建文件hello.go

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

在这里插入图片描述

在终端运行

go run hello.go

在这里插入图片描述

4、安装必要的工具和插件

4.1 安装 go 的一些工具

  1. 解决golang.org 连不上的问题
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x

目录创建成功后,在x目录中执行

git clone https://github.com/golang/tools.git

安装工具包
执行

go install golang.org/x/tools/cmd/guru

报错

src\golang.org\x\tools\internal\imports\mod.go:17:2: cannot find package "golang.org/x/mod/module" in any of:
       D:\Go\src\golang.org\x\mod\module (from $GOROOT)      
       E:\Workplace\go\src\golang.org\x\mod\module (from $GOPATH)
src\golang.org\x\tools\internal\gocommand\vendor.go:16:2: cannot find package "golang.org/x/mod/semver" in any of:
       D:\Go\src\golang.org\x\mod\semver (from $GOROOT) 
       E:\Workplace\go\src\golang.org\x\mod\semver (from $GOPATH)
src\golang.org\x\tools\go\packages\golist.go:27:2: cannot find package "golang.org/x/xerrors" in any of:
       D:\Go\src\golang.org\x\xerrors (from $GOROOT)
       E:\Workplace\go\src\golang.org\x\xerrors (from $GOPATH)

解决办法

cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/mod.git
git clone https://github.com/golang/xerrors.git

然后go install golang.org/x/tools/cmd/guru就成功啦!

  1. 安装其余插件
go install golang.org/x/tools/cmd/gorename

先go get 再 go install

go get -u -v github.com/rogpeppe/godef
go install github.com/rogpeppe/godef
go get -u -v github.com/ramya-rao-a/go-outline
go install github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go install github.com/acroca/go-symbols
go get -u -v github.com/josharian/impl
go install github.com/josharian/impl
go get -u -v github.com/sqs/goreturns
go install github.com/sqs/goreturns
go get -u -v github.com/golang/lint/golint
go install github.com/golang/lint/golint
go get -u -v github.com/cweill/gotests/gotests
go install github.com/cweill/gotests/gotests
go get -u -v github.com/nsf/gocode
go install github.com/nsf/gocode

在这里插入图片描述

查看bin文件夹,可以看到
在这里插入图片描述
安装成功

4.2 vscode 插件

  1. EXTENSION

转到->扩展
输入go,安装
在这里插入图片描述

5、安装与运行 go tour

先运行如下命令

go get github.com/Go-zh/tour/gotour
gotour

在这里插入图片描述
按照提示

cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tour.git
go build

报错

go: golang.org/x/tools@v0.0.0-20190312164927-7b79afddac43: Get "https://proxy.golang.org/golang.org/x/tools/@v/v0.0.0-20190312164927-7b79afddac43.mod": dial tcp 172.217.160.113:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

解决办法
在 PowerShell 中设置

$env:GOPROXY = "https://goproxy.io"

在这里插入图片描述
再次运行

go build
go install

在这里插入图片描述在这里插入图片描述

6、我的第一个包与测试

  1. 创建包并进入该目录
$ mkdir $GOPATH/src/github.com/user/stringutil
$ cd $GOPATH/src/github.com/user/stringutil
  1. 接着,在该目录中创建名为 reverse.go 的文件,内容如下:
// stringutil 包含有用于处理字符串的工具函数。
package stringutil

// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
	r := []rune(s)
	for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
		r[i], r[j] = r[j], r[i]
	}
	return string(r)
}
  1. 现在用 go build 命令来测试该包的编译
    这不会产生输出文件。想要输出的话,必须使用 go install 命令,它会将包的对象放到工作空间的 pkg 目录中。

  2. 确认 stringutil 包构建完毕后,修改原来的 hello.go 文件(它位于 $GOPATH/src/github.com/user/hello)去使用它:

package main

import (
	"fmt"

	"github.com/user/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
  1. 安装hello程序

无论是安装包还是二进制文件,go 工具都会安装它所依赖的任何东西。 因此当我们通过

cd $GOPATH/src/github.com/user/hello
go install

来安装 hello 程序时,stringutil 包也会被自动安装。

  1. 运行

运行此程序的新版本,你应该能看到一条新的,反向的信息:
在这里插入图片描述

  1. 测试

我们可通过创建文件 $GOPATH/src/github.com/user/stringutil/reverse_test.go 来为 stringutil 添加测试,其内容如下:

package stringutil

import "testing"

func TestReverse(t *testing.T) {
	cases := []struct {
		in, want string
	}{
		{"Hello, world", "dlrow ,olleH"},
		{"Hello, 世界", "界世 ,olleH"},
		{"", ""},
	}
	for _, c := range cases {
		got := Reverse(c.in)
		if got != c.want {
			t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
		}
	}
}

接着使用 go test 运行该测试:

cd $GOPATH/src/github.com/user/stringutil
go test

在这里插入图片描述

7、问题或要点小结

  • 遇到错误不要慌,根据报错信息寻找解决方案
  • go常用命令
    build: 编译包和依赖
    clean: 移除对象文件
    doc: 显示包或者符号的文档
    env: 打印go的环境信息
    bug: 启动错误报告
    fix: 运行go tool fix
    fmt: 运行gofmt进行格式化
    generate: 从processing source生成go文件
    get: 下载并安装包和依赖
    install: 编译并安装包和依赖
    list: 列出包
    run: 编译并运行go程序
    test: 运行测试
    tool: 运行go提供的工具
    version: 显示go的版本
    vet: 运行go tool vet
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值