Reflection 如何使用reflect按名称获取包常量值?

Reflection 如何使用reflect按名称获取包常量值?,reflection,go,Reflection,Go,它是一个包含一些常量的包 package object type Languaege int const ( Javascript Languaege = iota C Cpp Shell ) //======================================== 如果我知道类型语言的名称,如何获取其值 package main func GetConstByName(name String) { .... } lang := GetC

它是一个包含一些常量的包

package object

type Languaege int

const (
    Javascript Languaege = iota
    C
    Cpp
    Shell
)
//========================================

如果我知道类型语言的名称,如何获取其值

package main
func GetConstByName(name String) {
    ....
}
lang := GetConstByName("Shell")

你在试图滥用反思。在这种情况下,幸运的是,它不会起作用。如果要将字符串键映射到某些关联的值,请改用
map[string]someValueType

你试图滥用反思。在这种情况下,幸运的是,它不会起作用。如果要将字符串键映射到某些关联的值,请改用
map[string]someValueType

如果希望
语言
保持为
常量
整数类型,我认为你只能手工操作

下面是我将要做的-使语言实现,这意味着您也可以打印它。然后可以反转
languageMap
将语言字符串转换为
language

这个输出

C is 1: C: 1
Shell is 3: Shell: 3

如果你想
Language
保持
const
整数类型,我认为你只能手工操作

下面是我将要做的-使语言实现,这意味着您也可以打印它。然后可以反转
languageMap
将语言字符串转换为
language

这个输出

C is 1: C: 1
Shell is 3: Shell: 3

你怎么知道他是否试图滥用反思?你怎么知道他是否试图滥用反思?