数组不接受索引(如果它是字符串)

这是我的示例,为什么第一个代码有效,而第二个代码不起作用???


此代码不起作用


func main() {

    type Country int

    const (

        Egypt Country = iota

        Germany

        UnitedStates

    )

    shortcuts := [...]string{Egypt: "EG", Germany: "GER", UnitedStates: "US"}

    fmt.Println("Please use one of these [ 'Egypt',  'Germany', 'UnitedStates']")

    entery := os.Args[1]

    fmt.Printf("The short cut of %v is %v\n", entery, shortcuts[entery])

}

此代码正在运行


func main() {

    type Country int

    const (

        Egypt Country = iota

        Germany

        UnitedStates

    )

    shortcuts := [...]string{Egypt: "EG", Germany: "GER", UnitedStates: "US"}

    fmt.Println("Please use one of these [ 'Egypt',  'Germany', 'UnitedStates']")

    entery := os.Args[1]

    fmt.Printf("The short cut of %v is %v\n", entery, shortcuts[Egypt])


}


FFIVE
浏览 125回答 2
2回答

牛魔王的故事

您可以使用关联的映射,其中与映射中的键关联的值表示数组中其等效项的索引值。例如shortcuts := [...]string{"", "EG","GER","US"}shortcutMap := map[string]int{"" : 0, "Egypt": 1, "Germany": 2, "UnitedStates": 3}这应该允许您像这样调用快捷方式Map:shortcutMap["Egypt"]并从那里找到快捷方式:shortcuts[shortcutMap["Egypt"]]将返回“EG”对于您的问题,这不是一个很好的解决方案,因为它会使在列表中添加和删除快捷方式以及维护索引关联的键值变得复杂。但似乎你想保留一系列快捷方式。正如有人已经说过的那样,数组只能用整数索引;呼叫将永远不会起作用。array["string"]

三国纷争

你回答了标题中的问题。操作系统。Args[0/1/2...] 返回一个字符串。https://golang.org/pkg/os/#Variables数组索引不能是字符串。不在GoLang中。或我知道的任何其他语言。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go