當(dāng)附近發(fā)生爆炸時(shí),我試圖代表一個(gè)戴眼鏡的人靠近窗戶。main是在爆炸期間應(yīng)該做什么的草圖。應(yīng)該收集爆炸附近物體的列表,并為每個(gè)物體做特定的事情(例如粉碎或熔化)。玻璃和窗戶如預(yù)期般破碎,但出于某種原因,人類也破碎了。為什么?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 回答
- 0 關(guān)注
- 191 瀏覽
添加回答
舉報(bào)
0/150
提交
取消