go的包中`var _ io.ReadCloser = (*A)(nil)`有什么作用?-灵析社区

邦纳娜娜

go的包中`var _ io.ReadCloser = (*A)(nil)`有什么作用?

阅读量:14

点赞量:0

问AI
我找原因了: 为了编译器在编译期间进行断言 ,GO编译期间会进行死码消除,这种代码不会对正式环境造成影响,但是可以在编译期间检查出我们要实现某些接口时候,如果没有实现的问题。因为GO的interface实现不是强制性检测; 具体可以看:"interface-合理性验证" (https://link.segmentfault.com/?enc=7JRBmyCWtAu%2Fm01jyUGwMw%3D%3D.EEpuhw0oj0Sab9t4WlwZSVokiRbR8eIzLWYghj%2BHrsJco3r27r76Q1dYZF9%2BTNV%2FmUqIQP7hHmyghyEkLxNZ%2FU53eFzZJWFsVmFeItAiBRPt8cxaldMV8v5uwCsDZoub3aZlkToegjGIRpETcQbs1g%3D%3D)