一、接口变量包含的内容
1.实现者的类型
2.实现者的值/实现者的指针
3.接口变量自带指针
4.接口变量同样采用值传递,几乎不需要使用接口的指针
5.指针接收者实现只能以指针方式使用;值接收者都可
二、查看接口变量
1.表示任何类型:interface{}
2.Type Assertion
示例1:
if retriever, ok := r.(mock.Retriever); ok {
fmt.Println(retriever.Contents)
} else {
fmt.Println("Not mock retriever")
}
3.Type Switch
示例2:
switch v := r.(type) {
case mock.Retriever:
fmt.Println("mock Retriever", v.Contents)
case real2.Retriever:
fmt.Println("real Retriever", v.UserAgent)
}