多模块工作区入门
在工作空间中创建hello包,进行
go mod init hello
初始化;
通过
go get golang.org/x/example/hello/reverse
添加包依赖项;
get指令用于手动从网络中获得包依赖项,也可以如 **go基础(2) **中,先在import中导入依赖包名再通过go mod tidy自动获取import中的依赖项;
hello.go内容为:
package main
import (
"fmt"
"golang.org/x/example/hello/reverse"
)
func main() {
fmt.Println(reverse.String("Hello"))
}
在工作空间中初始化工作区
go work init ./hello
即会在工作空间中产生一个go.work文件,相当于整个项目的多包管理工具
git clone https://go.googlesource.com/example
现在通过git命令行(gitbash需自行下载与配置环境)将此外包拉取到本地工作空间并命名为example,通过
go work use ./example/hello
将此包依赖添加到工作区中;
最终go.work文件内容为:
go 1.18
use (
./hello
./example/hello
)
将本地工作空间的example/hello/reverse中添加新函数;
package reverse
import "strconv"
// Int returns the decimal reversal of the integer i.
func Int(i int) int {
i, _ = strconv.Atoi(String(strconv.Itoa(i)))
return i
}
在hello程序中使用该函数;
package main
import (
"fmt"
"golang.org/x/example/hello/reverse"
)
func main() {
fmt.Println(reverse.String("Hello"), reverse.Int(24601))
}
在工作空间内go run ./hello可正常运行程序。
梗概
以上步骤先从网络中get到包,测试运行,并建立工作区。之后将此网络包拉取到本地,新增一个新的函数。最后在工作区的主函数中使用该函数。整个项目依靠go.work工作区运行。
go标准库简介
fmt包
fmt.println(string)
打印数据到终端并\n回车;
fmt.Sprintf(string,)
在输出内容中添加格式符进行替换输出;
log包
log.SetPrefix(string)
在日志打印前输出此数据;
log.setFlags(int)
设计标记;
log.Fatal(string)
日志打印后终止程序;
math包
rand.Intn(int)
获得[0,n]的任意整数;
error包
errors.New(string)
获得一个报错信息;
regexp包
REG:=regexp.MustComplie(string)
输入一个正则表达式获得一个匹配项;
REG.MatchString(string)
对传入的字符串参数进行匹配项搜索,返回布尔值;
testing包
*testing.T
作为测试函数的传参类型,一般测试函数传参格式为(T *testing.T);
t.Fatalf(string,)
用于测试函数的日志输出,可在输出内容中添加格式符输出,日志打印后输出一个回车符\n终止程