在Haskell中,map
的类型为:
map :: (a -> b) -> [a] -> [b]
请注意,a
和b
不是绝对类型,而是类型变量,这意味着它们可以是任何类型,只要每个变量在特定函数调用中始终引用相同的类型即可。如何在Go中做同样的事情?
答案 0 :(得分:6)
interface{}
)。标准库中Map函数的类型是:
func Map(iter Iterable, f func(interface{}) interface{}) Iterable
因此,它不是采用从a
到b
的函数,而是需要一个从interface{}
到interface{}
的函数。
答案 1 :(得分:1)
Chuck已经回答,但您可能会发现我的ty
图书馆很有用:http://godoc.org/github.com/BurntSushi/ty/fun