登录
首页 >  Golang >  Go问答

定义一组常数及其描述的最佳实践是什么

来源:stackoverflow

时间:2024-04-15 14:00:34 249浏览 收藏

本篇文章向大家介绍《定义一组常数及其描述的最佳实践是什么》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

例如,我只想用名称定义一组日期:

[
    {monday=1, 'monday'},
    {tuesday=2, 'tuesday'},
    {thursday=3, 'thursday'},
    ...
    {sunday=4, 'sunday'},
]

以下是我所知道的方法:

  1. 定义类型及其 desc() 函数。
type myday int
const (
    monday myday = 0
    tuesday myday = 1
)
func (d myday) desc() string {
    switch(d) {
    case monday: return "monday";
    case tuesday: return "tuesday"
    }
}
  1. 使用整数字符串映射
const (
    Monday int = 0
    Tuesday int = 1
)
var dayDescs []string {
    Monday: "Monday",
    Tuesday: "Tuesday",
}

两者都有短缺。如果我想增加一天,我必须修改两个地方。如果我只在一处添加它是行不通的。

我知道另一种方法是使用标签,但是反射会对效率产生副作用。

有没有一种简单的方法来声明一个常量整数及其描述?


解决方案


我认为最好的方法是实现 stringer 接口 string() string 方法。

type MyDay int

const (
    Monday MyDay = iota
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    Sunday
)

func (d MyDay) String() string {
    return []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}[d]
}

func main() {
    fmt.Println(Monday.String())
}

好了,本文到此结束,带大家了解了《定义一组常数及其描述的最佳实践是什么》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>