为了账号安全,请及时绑定邮箱和手机立即绑定

接口和将匿名字段嵌入到结构中

接口和将匿名字段嵌入到结构中

Go
守着一只汪 2021-08-16 16:05:51
当附近发生爆炸时,我试图代表一个戴眼镜的人靠近窗户。main是在爆炸期间应该做什么的草图。应该收集爆炸附近物体的列表,并为每个物体做特定的事情(例如粉碎或熔化)。玻璃和窗户如预期般破碎,但出于某种原因,人类也破碎了。为什么?package mainimport "fmt"type Human struct { Glasses }type Glasses struct {}type Shatterable interface { shatter() }func (g Glasses) shatter() {}type Window struct {}func (w Window) shatter() {}func main() {    h := Human{Glasses{}}    objectsInProximity := []interface{}{h,h.Glasses,Window{}}    for _,o := range objectsInProximity {        shatter(o)    }}func shatter(i interface{}) {    s, ok := i.(Shatterable)    if ok {        fmt.Printf("shattering a %T\n", s)        s.shatter()    }}$ go run a.goshattering a main.Humanshattering a main.Glassesshattering a main.Window
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信