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