gpt4 book ai didi

go - 用描述定义一组常数的最佳实践是什么

转载 作者:行者123 更新时间:2023-12-01 22:21:39 25 4
gpt4 key购买 nike

例如,我只想用他们的名字定义一组天:

[
{Monday=1, 'Monday'},
{Tuesday=2, 'Tuesday'},
{Thursday=3, 'Thursday'},
...
{Sunday=4, 'Sunday'},
]
以下是我知道的方法:
  • 定义一个类型及其 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"
    }
    }
  • 使用整数到字符串映射

  • const (
    Monday int = 0
    Tuesday int = 1
    )
    var dayDescs []string {
    Monday: "Monday",
    Tuesday: "Tuesday",
    }
    两者都有不足。如果我想增加一天,我必须修改两个地方。如果我只是在一个地方添加它,它就无法工作。
    我知道另一种方法是使用标签,但反射会对效率产生副作用。
    有没有一种简单的方法来声明一个常量整数及其描述?

    最佳答案

    我认为最好的方法是实现stringer接口(interface) 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())
    }

    关于go - 用描述定义一组常数的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63126664/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com