登录
首页 >  Golang >  Go问答

判断变量的数据类型是否为字符串、整数或浮点数

来源:stackoverflow

时间:2024-02-06 09:13:12 237浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《判断变量的数据类型是否为字符串、整数或浮点数》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

得到这种类型的 map[string]interface{} 因为我想允许同时包含 stringsintegers 的地图

但是如何将地图转换为 map[string]string 并在任何值“不支持”时返回错误?

value, ok := v.(string)

如果该值为整数,则会抛出错误


正确答案


Go 支持类型开关

对于您的用例,它看起来像:

m := map[string]string{}
for k,v := range values {
    switch value := v.(type) {
        switch value := v.(type) {
        case int:
            m[k] = fmt.Sprintf("%v", value)

        case float64:
            m[k] = fmt.Sprintf("%v", value)

        case string:
            m[k] = fmt.Sprintf("%v", value)

       default:
            return nil,fmt.Errorf("unknown type %T", v)
    }
}

return m,nil

如果您愿意,您可以将这些案例合并为一个案例,例如https://play.golang.com/p/XrM7ABJ8Gok

今天关于《判断变量的数据类型是否为字符串、整数或浮点数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>