获得徽章 21
2024.4.1 面试题打卡 Day001
问题:如何判断一个结构体是否实现了某接口?【From Go社招面经】
答:把 nil 转成结构体指针并赋值给该 interface,变量用 _ 去忽视防止报未使用错误,这样编译的时候的时候就会报错。
代码参考:
type T struct{}
var _ I = T{} // 判断 T 结构体是否实现了 I 接口
var _ I = (*T)(nil) // 判断 *T(结构体指针)是否实现了 I 接口
当然平时开发场景下 IDE 会提前报错,不用等到编译,这估计是蛮早的题目了,目前测试了下如果有对结构体实际调用的其他场景,哪怕代码运行没有实际运行到那一行,编译时也会报错。估计这个实现更多用于快速标记某个结构体实现了某个接口。
另外注意类型是对接口用的,不能用在这。
展开
评论
下一页
个人成就
文章被点赞 4
文章被阅读 21,540
掘力值 842
收藏集
67
关注标签
16
加入于