当附近发生爆炸时,我试图代表一个戴眼镜的人靠近窗户。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
提交
取消