安装Go语言开发环境 & 使用Go编程

目录

 

安装Go语言开发环境

安装VSCode编辑器

安装golang

安装

设置环境变量

创建Hello world

安装必要的工具和插件

安装Git客户端

安装Go的一些工具

安装与运行gotour

使用Go编程

用Go工具构建、安装并运行之前创建的Hello world

编写一个库

测试

远程包

实验代码

参考


安装Go语言开发环境

安装VSCode编辑器

按照步骤安装VSCode编辑器。

安装golang

安装

  • 使用系统包管理工具安装:
sudo yum install golang
  • 查看安装目录 :
rpm -ql golang |more
  • 查看安装版本(测试是否安装成功):
go version

设置环境变量

  • 创建工作空间:
mkdir $HOME/go
  • 配置环境变量
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
  • 检查环境配置
go env

安装Go语言开发环境 & 使用Go编程_第1张图片

创建Hello world

  • 退出当前用户,然后重新登陆
  • 创建源代码目录
mkdir $GOPATH/src/github.com/github-user/hello -p
  • 使用VS Code创建hello.go(需进入图形界面)
package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}
  • 在终端运行
go run hello.go

安装必要的工具和插件

安装Git客户端

sudo yum install git

安装Go的一些工具

用VSCode打开.go文件后会提示需要安装一些工具,但由于无法连接golang.org,部分工具无法安装。因此我们只能下载源代码到本地再进行安装。

  • 创建文件夹
mkdir $GOPATH/src/golang.org/x/
  •  下载源码
go get -d github.com/golang/tools

或者

git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools
  • 复制 
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
  • 安装工具包 
go install golang.org/x/tools/go/buildutil
  •  退出VSCode,再重新进入,按照提示安装
  • 安装运行Hello world
go install github.com/github-user/hello

如果PATH变量配置正确(可通过env命令查看),则可直接在控制台输入hello运行可执行程序,否则需要进入与src同级的bin文件夹,输入./hello运行可执行程序。

安装与运行gotour

安装golang程序检查工具及使用方法

 

使用Go编程

Go代码必须放在工作空间内。它其实就是一个目录,其中包含三个子目录:

  • src 目录包含Go的源文件,它们被组织成包(每个目录都对应一个包),
  • pkg 目录包含包对象,
  • bin 目录包含可执行命令。

用Go工具构建、安装并运行之前创建的Hello world

  • 构建并安装Hello world 
go install github.com/github-user/hello

该命令可以在系统的任何地方运行,若已在包目录内则可以省略路径名,则输入go install即可。

  • 运行Hello world
$GOPATH/bin/hello

和之前的情况一样,当PATH变量配置正确时,可以通过直接输入hello运行程序。

编写一个库

  • 选择包路径(github.com/github-user/stringutil)并创建包目录
mkdir $GOPATH/src/github.com/github-user/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)
go build github.com/github-user/stringutil
  •  修改之前创建的hello.go
package main

import (
	"fmt"

	"github.com/user/stringutil"
)

func main() {
	fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
  • 重新安装hello程序
go install github.com/github-user/hello
  • 再次运行hello程序

测试

Go拥有一个轻量级的测试框架,它由 go test 命令和 testing 包构成。

你可以通过创建一个名字以 _test.go 结尾的,包含名为 TestXXX 且签名为 func (t *testing.T) 函数的文件来编写测试。 测试框架会运行每一个这样的函数;若该函数调用了像 t.Errort.Fail 这样表示失败的函数,此测试即表示失败。

  • 创建文件 $GOPATH/src/github.com/github-user/stringutil/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 运行该测试(若在包目录下运行 go 工具,只需输入go test)
go test github.com/user/stringutil

远程包

像Git或Mercurial这样的版本控制系统,可根据导入路径的描述来获取包源代码。go 工具可通过此特性来从远程代码库自动获取包。若你在包的导入路径中包含了代码仓库的URL,go get 就会自动地获取、 构建并安装它。

若指定的包不在工作空间中,go get 就会将会将它放到 GOPATH 指定的第一个工作空间内。(若该包已存在,go get 就会跳过远程获取, 其行为与 go install 相同)

  • 获取、构建并安装远程包 
go get github.com/golang/example/hello
  •  运行程序
$GOPATH/bin/hello

 

实验代码

 

参考

安装 go 语言开发环境

Golang 解决 golang.org/x/ 下包下载不下来的问题

如何使用Go编程

 

 

 

 

你可能感兴趣的:(服务计算)