Skip to content

【提升效率】golang中使用常量与中文映射像java enum一样方便

Notifications You must be signed in to change notification settings

jinfeijie/gen-const

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gen-const

这是一个golang代码生成工具。

如何安装

go install github.com/jinfeijie/gen-const@latest

如何使用

如有需要,你可以使用如下示例来帮助理解

  1. 创建一个golang文件 test.go
package exp

type HttpCode int

//go:generate gen-const -type HttpCode
const (
	respOk   = HttpCode(0)   // 成功
	respFail = HttpCode(500) // 失败
)
  1. 在命令行中运行
go generate test.go

或者点击编辑器执行按键

  1. 将会生成文件httpcode_gen.go
// Code generated by "gen-const -type HttpCode"; DO NOT EDIT.
// 代码文件由 "gen-const -type HttpCode" 生成; 不要编辑本代码文件。

package exp

import "fmt"

type HttpCodeType struct {
	Val int
	Msg string
}

func (receiver *HttpCodeType) GetVal() int {
	return receiver.Val
}

func (receiver *HttpCodeType) GetMsg() string {
	return receiver.Msg
}

func HttpCodeFunc(val int, msg string) *HttpCodeType {
	return &HttpCodeType{
		Val: val,
		Msg: msg,
	}
}

func (receiver *HttpCodeType) String() string {
	return "HttpCodeType (Val: " + fmt.Sprintf("%+v", receiver.Val) + ", Msg: " + receiver.Msg + ")"
}

var (
	RespOkHttpCode   = HttpCodeFunc(0, "成功")
	RespFailHttpCode = HttpCodeFunc(500, "失败")
)

工具示例

exp

工具原理

https://jinfeijie.cn/post-2112252258

About

【提升效率】golang中使用常量与中文映射像java enum一样方便

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages