繁体   English   中英

如何在Golang中编写一个以多种类型为参数的函数?

[英]How can I write a function in Golang which takes multiple types as a parameter?

我正在尝试用Golang写一个函数,该函数将序列化地图和切片(将其转换为字符串)。 我希望它采用一个参数,但是我不确定如何使它仅接受地图和切片。 我知道我可以使用类似以下功能的东西,但在这一点上我感到困惑。 我仍在努力围绕接口。

func Serialize(data interface{}) string {
    return ""
}

如果不需要为它创建自己的结构,则它是首选。 非常感谢您提供有关如何允许此Serialize函数接受映射和结构的解释。

您可以为此简单地使用fmt.Sprintf

type foo struct {
    bar  string
    more int
}

func main() {
    s := []string{"a", "b", "c"}
    fmt.Println(Serialize(s))

    m := map[string]string{"a": "a", "b": "b"}
    fmt.Println(Serialize(m))

    t := foo{"x", 7}    
    fmt.Println(Serialize(t))
}

func Serialize(data interface{}) string {
    str := fmt.Sprintf("%v", data)
    return str
}

这将打印:

[abc]

map[b:ba:a]

{x 7}

如果需要/需要使用strings.TrimSuffixstrings.TrimPrefix ,可以轻松修剪{}[]map[] strings.TrimPrefix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM