gpt4 book ai didi

function - 将不同类型的参数传递给函数

转载 作者:IT王子 更新时间:2023-10-29 01:42:36 26 4
gpt4 key购买 nike

我有这个功能,我想让它能够接收所有类型的 slice ,不仅是 []string,还有 []int 等等......我想知道是否有办法在将参数传递给函数头时抽象类型,或者我是否应该做其他事情来完成它。

package removeDuplicate

// RemoveDuplicate remove duplicate items from slice setting it to arr2
func RemoveDuplicate(arr []string) []string {
arr2 := arr[:1]
Loop:
for i := 1; i < len(arr); {
for j := 0; j < len(arr2); {
if arr[i] != arr[j] {
j++
} else {
i++
continue Loop
}
}
arr2 = append(arr2, arr[i])
i++
}
return arr2
}

提前致谢 =]

最佳答案

如果您更改函数签名以接受接口(interface){},您可以获得适用于内置类型的东西。

package main

import "fmt"

func main() {
x := []interface{}{"bob", "doug", "bob"}
fmt.Println(RemoveDuplicate(x))
y := []interface{}{1, 3, 1}
fmt.Println(RemoveDuplicate(y))
z := []interface{}{"bob", "2", "doug", 3, 2, "bob"}
fmt.Println(RemoveDuplicate(z))
}

func RemoveDuplicate(arr []interface{}) []interface{} {
arr2 := arr[:1]
Loop:
for i := 1; i < len(arr); {
for j := 0; j < len(arr2); {
if arr[i] != arr[j] {
j++
} else {
i++
continue Loop
}
}
arr2 = append(arr2, arr[i])
i++
}
return arr2
}

查看常见问题 Can I convert a []T to an []interface{}? (和之前的)了解更多信息。

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

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