golang工具之generate 示例: 大家经常碰到命名错误码、状态码的同时,又要同步写码对应的翻译,有没有感觉很无聊。这里举一个例子: package main import"fmt"//定义错误码const( ERR_CODE_OK=0//OKERR_CODE_INVALID_PARAMS =1//无效参数ERR_CODE_TIMEOUT =2//超时)...
然后,在 painkiller.go 文件所在的目录下运行go generate命令。 执行成功后没有任何提示信息,但会在当前目录下面生成一个 pill_string.go 文件,文件中实现了我们需要的 String() 方法,文件内容如下: // Code generated by "stringer -type=Pill"; DO NOT EDIT. package painkiller import "strconv" func _()...
// Code generated by "stringer -type=UserStatus"; DO NOT EDIT.package mainimport "strconv"func _() { // An "invalid array index" compiler error signifies that the constant values have changed. // Re-run the stringer command to generate them again. var x [1]struct{} _ = x[Active-...
func main() { generateTest() } 最后运行一下执行的结果: qpzhang@qpzhang:~/gocode/auto-gen $go run main.gogetName: addergetTitle: The adder APIgetDesc: A teaserforgoa 我们已经拿到用户在DSL里面定义的数据了(当然,这里DSL描述是直接写到同一个文件里面,省去了合并引入的过程)。 OK,代码的自动...
比如平时我们在 LeetCode 上刷算法题,这时候写的就是一个程序,这就是命令源码文件,可以在电脑的任意一个文件夹新建一个 go 文件就可以开始刷题了,写完就可以运行,对比执行结果,答案对了就可以提交代码。 但是公司项目里面的代码就不能这样了,只能存放在 GOPATH 目录下。因为公司项目不可能只有命令源码文件的,肯定...
// Code generated by Wire. DO NOT EDIT.//go:generate wire//+build !wireinjectpackagemainimport("fmt")// Injectors from main.go:funcInitializeEvent()Event{message:=NewMessage()people:=NewPeople(message)event:=NewEvent(people)returnevent}// main.go:varmsg="Hello World!"funcNewMessage()Messa...
"user@example.com",Period: 30,Digits: otp.DigitsSix,Algorithm: otp.AlgorithmSHA1,})if err != nil {panic(err)}fmt.Println("Secret URL: ", key.URL())// 模拟生成一个一次性密码now := time.Now()passcode, err := totp.GenerateCode(key.Secret(), now)if err !=...
首先在 Goland 中打开项目,加载对应文件后右键找到 Generate 项,点击后选择 Tests for package,之后生成以_test.go结尾的单测文件。(如果想针对某一特定函数做单测,请选择对应的函数后右键选定 Generate 项执行 Tests for selection。) 这里展示通过 IDE 生成的TestGetPersonDetail测试函数: ...
// Code generated by Wire. DO NOT EDIT. //go:generate go run /google/wire/cmd/wire //+build !wireinject package main import ( "context" "/google/wire" ) // Injectors from wire.go: func initSchool(ctx context.Context) (School, error) { student := NewStudent() class := NewClass...
New("https://github.com/yeqown/go-qrcode") if err != nil { fmt.Printf("could not generate QRCode: %v", err) } // save file if err := qrc.Save("../testdata/repo-qrcode.jpeg"); err != nil { fmt.Printf("could not save image: %v", err) } } 生成结果如图: github....