目录
安装Go语言开发环境
安装VSCode编辑器
安装golang
安装
设置环境变量
创建Hello world
安装必要的工具和插件
安装Git客户端
安装Go的一些工具
安装与运行gotour
使用Go编程
用Go工具构建、安装并运行之前创建的Hello world
编写一个库
测试
远程包
实验代码
参考
按照步骤安装VSCode编辑器。
sudo yum install golang
rpm -ql golang |more
go version
mkdir $HOME/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
go env
mkdir $GOPATH/src/github.com/github-user/hello -p
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
go run hello.go
sudo yum install git
用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
go install github.com/github-user/hello
如果PATH变量配置正确(可通过env命令查看),则可直接在控制台输入hello运行可执行程序,否则需要进入与src同级的bin文件夹,输入./hello运行可执行程序。
Go代码必须放在工作空间内。它其实就是一个目录,其中包含三个子目录:
src
目录包含Go的源文件,它们被组织成包(每个目录都对应一个包),pkg
目录包含包对象,bin
目录包含可执行命令。
go install github.com/github-user/hello
该命令可以在系统的任何地方运行,若已在包目录内则可以省略路径名,则输入go install即可。
$GOPATH/bin/hello
和之前的情况一样,当PATH变量配置正确时,可以通过直接输入hello运行程序。
github.com/github-user/stringutil
)并创建包目录mkdir $GOPATH/src/github.com/github-user/stringutil
// 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
package main
import (
"fmt"
"github.com/user/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
go install github.com/github-user/hello
Go拥有一个轻量级的测试框架,它由
go test
命令和testing
包构成。你可以通过创建一个名字以
_test.go
结尾的,包含名为TestXXX
且签名为func (t *testing.T)
函数的文件来编写测试。 测试框架会运行每一个这样的函数;若该函数调用了像t.Error
或t.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编程