为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以使用枚举索引声明多维数组?

是否可以使用枚举索引声明多维数组?

Go
收到一只叮咚 2023-02-21 19:04:51
我想在 Go 中定义一个二维数组或切片,并使用枚举值来访问数组中的数据。以下将不会编译,我希望你能帮助我弄清楚如何让它工作。type (    Color  int    Fruit  int    MyType [][]string)const (    Red  Color = 1    Blue Color = 2    Apple     Fruit = 1    BlueBerry Fruit = 2)func DoIt() {    produce := make([][]MyType, 0)      // COMPILE ERROR: "Yummy Apple"' (type string) cannot be represented by the type MyType    produce[Red][Apple] = "Yummy Apple"}
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

是的,可以使用枚举索引声明一个数组数组。


    package main

    

    import "fmt"

    

    type (

        Color int

        Fruit int

    )

    

    const (

        Red      Color = 1

        Blue     Color = 2

        NumColor       = 3

    

        Apple     Fruit = 1

        BlueBerry Fruit = 2

        NumFruit        = 3

    )

    

    func main() {

        var produce [NumFruit][NumColor]string

        produce[Red][Apple] = "Yummy Apple"

        fmt.Printf("%#v\n", produce)

    }


https://go.dev/play/p/AxwcxLE3iJX


查看完整回答
反对 回复 2023-02-21
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

从声明中删除 MyType。然后它会起作用。


type (

    Color int

    Fruit int

)


const (

    Red  Color = 1

    Blue Color = 2


    Apple     Fruit = 1

    BlueBerry Fruit = 2

)


func DoIt() {

    produce := make([][]string, 0)


    produce[Red][Apple] = "Yummy Apple"

}


查看完整回答
反对 回复 2023-02-21
  • 2 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信