如何在Go中查找存储为字符串的值的数据类型?

如何在Go中查找存储为字符串的值的数据类型?,go,types,Go,Types,我的所有变量都存储为字符串。例如,var boolVar=“false”。Go中是否有用于返回boolVar中值的数据类型的包 我可以想出一种有点麻烦的方法,使用strconv,然后使用if-else测试返回的错误,但我想知道是否有软件包已经提供了这种功能 var boolVar=“false” var type=“string” 如果u,err:=strconv.ParseBool(boolVar);err==nil{ type=“bool” } First go不是为满足这些要求而构建的,

我的所有变量都存储为字符串。例如,
var boolVar=“false”
。Go中是否有用于返回
boolVar
中值的数据类型的包

我可以想出一种有点麻烦的方法,使用strconv,然后使用if-else测试返回的
错误,但我想知道是否有软件包已经提供了这种功能

var boolVar=“false”
var type=“string”
如果u,err:=strconv.ParseBool(boolVar);err==nil{
type=“bool”
}

First go不是为满足这些要求而构建的, 但有一个为您提供的软件包要求: 请记住,它只能eval expr,而不能像python中的eval那样编写代码

package main

import (
    "fmt"

    "github.com/apaxa-go/eval"
)

func main() {

    str := "int64(10*(1.1+2))"
    exp, err := eval.ParseString(str, "")
    if err != nil {
        fmt.Println(err)
    }
    val, err := exp.EvalToInterface(nil)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Printf("%v %T", val, val)
}

您的问题没有任何解决方案,您应该逐个检查所有类型