1.创建实例和创建workspace
mkdir workspace
cd workspace
mkdir hello
cd hello
go mod init example.com/hello
go get golang.org/x/example # go get添加对 golang.org/x/example 模块的依赖项.
在 hello 目录下创建 hello.go,内容如下:
package main
import (
"fmt"
"golang.org/x/example/stringutil"
)
func main() {
fmt.Println(stringutil.Reverse("Hello"))
}
现在,运行 hello 程序:
$ go run example.com/hello
olleH
创建workspace:
cd ..
go work init ./hello
生成了一个go.work文件,内容如下:
go 1.18
use ./hello
use指令告诉 Go,在执行构建时,hello 目录中的模块应该是主模块。因此,在 workspace的任何子目录中,此模块都会被激活。也就是说即使不在hello目录下,也可成功运行go run example.com/hello
2.下载和修改 golang.org/x/example 模块
git clone https://go.googlesource.com/example
go work use ./example
go.work变为:
go 1.18
use (
./hello
./example
)
下面,我们将向golang.org/x/example/stringutil包中添加一个新函数以将字符串变大写。
在 workspace/example/stringutil 目录中创建一个名为 toupper.go 的新文件,其中包含以下内容:
package stringutil
import "unicode"
// ToUpper uppercases all the runes in its argument string.
func ToUpper(s string) string {
r := []rune(s)
for i := range r {
r[i] = unicode.ToUpper(r[i])
}
return string(r)
}
修改 workspace/hello/hello.go 的内容以包含以下内容:
package main
import (
"fmt"
"golang.org/x/example/stringutil"
)
func main() {
fmt.Println(stringutil.ToUpper("Hello"))
}
在工作区运行代码
$ go run example.com/hello
HELLO
标签:workspace,hello,golang,工作,模块,example,go,stringutil
From: https://www.cnblogs.com/codingbigdog/p/16940856.html