NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
## 通过断言接口来询问行为(方法) ~~~ type Show interface { Display() } type View interface { Show View() } type User struct { } func (s User) Display() { } func (s User) View() { } func main() { u := User{} DisplayView(u) } func DisplayView(s Show) { //s.Display() 此时,s只有Display方法,而没有View方法,但是我们就是在有View方法的时候,先用View方法怎么办呢? 因为View方法可能比Display性能更好. 这就叫做**断言查询接口的行为** type OtherView interface { View() } if v, ok := s.(OtherView); ok { v.View() return } v.Display() } ~~~