老师问个问题
来源:9-1 Ubuntu下通过Docker安装RabbitMQ

xiaoyyyyy
2020-06-12
reflect.TypeOf((*error)(nil)) 中 (*error)(nil) 应该怎么理解呢
写回答
1回答
-
xiaomo
2020-06-14
同学你好,(*error)(nil)的意思可以理解为通过nil来实例化*error类型。这种用法在 判断某个类型是否实现了某种接口时 的场景会比较常见,比如:
package main import ( "fmt" "io" "os" "reflect" ) func main() { // 实例化*io.Writer类型 wType := reflect.TypeOf((*io.Writer)(nil)).Elem() // 实例化*os.File类型 fType := reflect.TypeOf((*os.File)(nil)) // 判断*os.File类型是否实现了Writer接口 fmt.Println(fType.Implements(wType)) } // 运行结果: true
00
相似问题