空接口的定义
空接口是指没有定义任何方法的接口。因此任何类型都实现了空接口
空接口类型的变量可以存储任意类型的变量。
:::warning interface - 关键字
interface{} - 空接口
:::
func main() {// 定义一个空接口xvar x interface{}s := "Hello 沙河"x = sfmt.Printf("type:%T value:%v\n", x, x)i := 100x = ifmt.Printf("type:%T value:%v\n", x, x)b := truex = bfmt.Printf("type:%T value:%v\n", x, x)}
空接口的应用
空接口作为函数的参数
使用空接口实现可以接收任意类型的函数参数。
func main() {show(10) //type:int value:10show("sam") //type:string value:sam}func show(a interface{}) {fmt.Printf("type:%T value:%v\n", a, a)}
空接口作为map的值
使用空接口实现可以保存任意值的字典。
// 空接口作为map值var studentInfo = make(map[string]interface{})studentInfo["name"] = "沙河娜扎"studentInfo["age"] = 18studentInfo["married"] = falsefmt.Println(studentInfo)
