Homework1

目录:

安装golang

apt-get
sudo apt-get install golang

但是这样子下载得到的版本并不是最新的,建议直接到官网下载

然后进入安装包的目录下,执行:

tar -xzf go1.15.2.linux-amd64.tar.gz
/usr/local
sudo cp -rf go /usr/local
/usr/local/go0777
cd /usr/local/
sudo chmod -R 0777 go
~/.bashrc
export PATH=$PATH:/usr/local/go/bin
go version

在这里插入图片描述

设置环境变量

首先创建工作空间目录:

mkdir $HOME/gowork
GOPATH~/.bashrc
export GOPATH=$HOME/gowork
PATH
export PATH=$PATH:$GOPATH/bin
go env

在这里插入图片描述

创建Helloworld

首先创建包路径:

mkdir -p $GOPATH/src/github.com/Hide-on-bush2

创建第一个程序的目录:

mkdir $GOPATH/src/github.com/Hide-on-bush2/hello
hello.go
package main

import "fmt"

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

然后可以用go工具来构建并安装此程序了:

go install github.com/Hide-on-bush2/hello
$GOPATH/bin/hello

创建第一个库

创建包目录:

mkdir $GOPATH/src/github.com/Hide-on-bush2/stringutil
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)
}
go build
go build github.com/Hide-on-bush2/stringutil
go installpkg
go install github.com/Hide-on-bush2/stringutil
hello.gostringutil
package main

import (
	"fmt"

	"github.com/Hide-on-bush2/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}

然后执行安装:

go install github.com/Hide-on-bush2/hello
$GOPATH/bin/hellohello

第一个测试

创建测试文件:

touch $GOPATH/src/github.com/Hide-on-bush2/stringutil/reverse_test.go
reverse_test.go
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 github.com/Hide-on-bush2/stringutil

安装必要的工具和插件

vscodetest.goinstall All
clone

在这里插入图片描述

然后执行以下命令手动安装:

go install golang.org/x/tools/go/buildutil

设置代理,使用国内镜像加速:

# 启用 Go Modules 功能
go env -w GO111MODULE=on

# 1. 七牛 CDN
go env -w  GOPROXY=https://goproxy.cn

# 2. 阿里云
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/

# 3. 官方
go env -w  GOPROXY=https://goproxy.io

install.sh
go get -v github.com/mdempsky/gocode
go get -v github.com/uudashr/gopkgs/v2/cmd/gopkgs
go get -v github.com/ramya-rao-a/go-outline
go get -v github.com/acroca/go-symbols
go get -v golang.org/x/tools/cmd/guru
go get -v golang.org/x/tools/cmd/gorename
go get -v github.com/cweill/gotests/...
go get -v github.com/fatih/gomodifytags
go get -v github.com/josharian/impl
go get -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -v github.com/haya14busa/goplay/cmd/goplay
go get -v github.com/godoctor/godoctor
go get -v github.com/go-delve/delve/cmd/dlv
go get -v github.com/stamblerre/gocode
go get -v github.com/rogpeppe/godef
go get -v github.com/sqs/goreturns
go get -v golang.org/x/lint/golint

记得给予它执行权限 :

sudo chmod +x install.sh
./install.sh

安装与运行gotour

如果是按照以下比较旧的版本来安装:

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

会得到以下结果:

在这里插入图片描述

说明这个是已经过期了的,应该按照官网来进行下载

下载安装包:

go get golang.org/x/tour
$GOPATH/pkg$GOPATH/src/golang.org/x/tour$GOPATH/src/golang.org/x/tour
cp -rf $GOPATH/pkg/mod/golang.org/x/[email protected] $GOPATH/src/golang.org/x/tour

在这里插入图片描述

在这里插入图片描述