尝试使用可变参数组合多个切片,出现错误:无法用 1 个值初始化 2 个变量
我如何调用这个组合函数?
这是代码:
func Combine(ss ...[]string) []string {
mp := map[string]bool{}
for _, s := range ss {
for _, v := range s {
if v != "" {
if _, ok := mp[v]; !ok {
mp[v] = true
}
}
}
}
combined := []string{}
for v := range mp {
combined = append(combined, v)
}
return combined
}
tests := []struct {
caseName string
s1 []string
s2 []string
want []string
}{
{
caseName: "Test combining 2 slices",
s1: []string{"a", "b", "c", "c", ""},
s2: []string{"a", "b", "z", "z", "", "y"},
want: []string{"a", "b", "c", "y", "z"},
},
}
actual, _ := Combine(test.s1, test.s2)
Run Code Online (Sandbox Code Playgroud)
您的可变调用参数格式很好。
该错误是由于您的函数Combine返回一项,而不是两项:
// actual, _ := Combine(test.s1, test.s2) // fails as only one item is returned
actual := Combine(test.s1, test.s2)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15002 次 |
| 最近记录: |