Go 使用字符串片,其中需要空接口片

Go 使用字符串片,其中需要空接口片,go,slice,Go,Slice,我正在尝试使用我在web上找到的带有一段字符串的集合库。该集合旨在能够接受泛型类型,但是当我尝试传入一段字符串时,我得到: 无法在mapset.NewSetFromSlice的参数中将组_用户(类型[]字符串)用作类型[]接口{} 有没有一种方法可以使用函数而不创建一个元素为interface{}类型的新切片 可在此处找到集合库: 我知道这可能是我做错的简单事情,但我似乎找不到答案 有没有一种方法可以使用函数而不创建元素为typeinterface{}的新切片 不完全是这样:您可能需要将字符串片

我正在尝试使用我在web上找到的带有一段字符串的集合库。该集合旨在能够接受泛型类型,但是当我尝试传入一段字符串时,我得到:

无法在mapset.NewSetFromSlice的参数中将组_用户(类型[]字符串)用作类型[]接口{}

有没有一种方法可以使用函数而不创建一个元素为interface{}类型的新切片

可在此处找到集合库:

我知道这可能是我做错的简单事情,但我似乎找不到答案

有没有一种方法可以使用函数而不创建元素为type
interface{}
的新切片

不完全是这样:您可能需要将字符串片段转换为接口片段,如“”中所述(这就是为什么您不能从
[]类型直接转换为
[]接口{}
):

考虑到这一点,您无法快速将一个切片转换为另一个切片


这是一个很好的例子

VonC是正确的,但是如果您实际上只需要一个字符串片段,那么实现起来就相当简单

下面是一个简单版本的

基本思想是创建一个类型为->bool的映射(或者我认为空结构更节省空间,但是bool更易于使用/Type)

关键部分包括:

type StringSet map[string]bool
func (s StringSet) Add(val string) {
    s[val] = true
}

然后,检查是否存在就像s[“key”]一样简单,因为如果存在,它将返回bool true;如果不存在,它将返回false(因为false是bool的默认值)

您可以添加库链接吗?
type StringSet map[string]bool
func (s StringSet) Add(val string) {
    s[val] = true
}