gpt4 book ai didi

go - 如何将不同类型传递给一个函数

转载 作者:IT王子 更新时间:2023-10-29 00:50:20 25 4
gpt4 key购买 nike

我有两个 golang 函数,做完全相同的事情,一个输入一个 slice ,另一个输入一个映射。我想把它合并成一个函数,以避免重复。

func DoSomething([]data) {
//do something.
}

func DoSomething(map[string]data) {
//do something.
}

组合函数可能如下所示:

    func DoSomethingNew (param type) {
//param could be map or slice
}

我想知道是否可以将不同类型传递给 golang 中的同一函数以及如何传递。我用谷歌搜索但找不到任何相关内容。

最佳答案

您可以使用接口(interface) Go Playground

func F(data interface{}) {
switch data.(type){
case []int:
fmt.Println("Slice")
fmt.Println(data)
case map[string]int:
fmt.Println("Map")
fmt.Println(data)
}

fmt.Println()
}

您实际检查类型并根据类型执行某些操作的位置。

关于go - 如何将不同类型传递给一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com