Объект любого типа может быть назначен пустому интерфейсу. Например, у нас есть следующая функция
func Println(i interface{} ) {
fmt.Println(i)
}
Мы можем позвонить по
Println(3)
Println(1.5)
Println("Hello")
Но я не могу добиться того же самого для типа функции
func Map(fn func( interface{} )) {
......
}
Я не могу назвать это с помощью
Map( func( i int) {......} )
потому что тип func(int)
отличается от типа func( interface{} )
.
Но когда я определяю func( interface{} )
, я действительно имею в виду любой тип входных параметров. Как я могу добиться этого в Go?