对接口类型变量可以使用类型断言来判断变量是否是某类型,语法:val := i.(targetType)
或val, ok := i.(targetType)
,
其中:
i
必须是接口类型变量;targetType
可以是具体类型(即非接口类型),也可以是接口类型。是具体类型时,则断言接口变量的动态类型;是接口类型时,则断言接口变量的动态类型是否实现了该接口。
使用var _ someInterface = (*someType)(nil)
可以通过编译来判断*someType
是否实现了someInterface
接口。