我正在尝试编写一个函数Map,以便它可以处理所有类型的数组。
// Interface to specify generic type of array.
type Iterable interface {
}
func main() {
list_1 := []int{1, 2, 3, 4}
list_2 := []uint8{'a', 'b', 'c', 'd'}
Map(list_1)
Map(list_2)
}
// This function prints the every element for
// all []types of array.
func Map(list Iterable) {
for _, value := range list {
fmt.Print(value)
}
}
但它会引发编译时错误。
19: cannot range over list (type Iterable)
错误是正确的,因为range需要数组、指向数组的指针、切片、字符串、映射或通道允许接收操作,这里的类型是Iterable。我认为我面临的问题是将参数类型转换Iterable为数组类型。请建议,我如何使用我的函数来处理通用数组。