什么是空接口以及空接口的简单使用方法
空接口或者最小接口不包含任何方法,对实现不做任何要求。
形如:
type Any interface{}
空接口类似于Java/C#中的所有类的基类:Object 类。
可以给空接口变量赋予任何类型的值
type rectangle struct {
height float64
width float64
}
type Any interface{}
func main() {
var any Any
any = 5
fmt.Printf("%v,%[1]T\n", any)//5,int
any = "Hello,World"
fmt.Printf("%v,%[1]T\n", any)//Hello,World,string
any = &rectangle{height: 4, width: 5}
fmt.Printf("%v,%[1]T\n", any) //&{4 5},*main.rectangle
}
每个 interface{ } 变量在内存中占据两个字节:
- 一个用来存储它包含的类型
- 另一个用来存储它包含的数据或者指向的指针
空接口也可以配合lambda函数 (匿名函数) 进行使用:
func TypeSwitch(){
testFunc := func(any interface{}) {
switch any.(type){
case bool:
fmt.Println("The type of