我知道这个话题已经有好几天了,但我喜欢发布一个替代方案,使用类型 switch。if err := datastore.GetMulti(c, keys, dst); err != nil { switch errt := err.(type) { case appengine.MultiError: for ix, e := range errt { if e == datastore.ErrNoSuchEntity { // keys[ix] not found } else if e != nil { // keys[ix] have error "e" } } default: // datastore returned an error that is not a multi-error }}