Go 如果索引是字符串,则数组不接受该索引

Go 如果索引是字符串,则数组不接受该索引,go,Go,这是我的示例,为什么第一个代码有效而第二个代码无效 此代码不起作用 此代码正在运行 你回答了标题中的问题。os.Args[0/1/2…]返回一个字符串 数组索引不能是字符串。不在戈兰。或者我知道的任何其他语言。您可以使用关联的映射,其中映射中与键关联的值表示数组中等价项的索引值。比如说, shortcuts := [...]string{"", "EG","GER","US"} shortcutMap := map[

这是我的示例,为什么第一个代码有效而第二个代码无效

此代码不起作用

此代码正在运行


你回答了标题中的问题。os.Args[0/1/2…]返回一个字符串


数组索引不能是字符串。不在戈兰。或者我知道的任何其他语言。

您可以使用关联的映射,其中映射中与键关联的值表示数组中等价项的索引值。比如说,

shortcuts := [...]string{"", "EG","GER","US"}
shortcutMap := map[string]int{"" : 0, "Egypt": 1, "Germany": 2, "UnitedStates": 3}
这应该允许您像这样调用shortcutMap:

shortcutMap["Egypt"]
然后从中找到快捷方式,其中包括:

shortcuts[shortcutMap["Egypt"]]
他会回来的


这并不是解决问题的好办法,因为它会使添加和删除列表的快捷方式以及维护索引关联的键值变得复杂。但似乎您希望保留快捷方式数组。正如有人已经说过的,数组只能用整数索引;调用数组[string]永远不会起作用。

你是正确的,这是可以理解的,但是条目应该作为第二个代码反映出来,但是我如何才能做到这一点?你说的反映是什么意思?与大部分代码的唯一区别在于最后一行的打印。其中,在第二个代码块中,您使用enum(即显式“快捷方式[Egypt]”访问数组。如果我没有弄错的话,第一个大容量不应该编译。我的意思是,我如何修复它,以便用户可以输入值,然后该值将成为数组的枚举索引?我是否需要将用户条目转换为int?我建议读取一些arg解析和cli标志,工作或不工作是什么意思?
shortcutMap["Egypt"]
shortcuts[shortcutMap["Egypt"]]