のスライスであるインターフェースの作成:構造体Models
もインタフェースであり、構造体のスライスによって実装になるだろうようにするため私は、次のような何かしたいのですが、別のインターフェイス
type Model interface {
EntityType() string
GetKey() *datastore.Key
SetKey(*datastore.Key) error
PreSave(context.Context) error
PostSave(context.Context) error
PostLoad(context.Context) error
}
type Models []Model interface {
Prepare(int) ([]Model, error)
}
をModel
を実装しています。次のようなものがあります。
type Foo struct {
key *datastore.Key `datastore:"_"`
// ... other things here
}
// assume all Model interface funcs are here and valid
type Foos []Foo
func (f *Foos) Prepare (num int) ([]Model, error) {
// do the preparations for Foo slice
}
明らかに、上記のコードはエラーをスローし、実行できません。しかし、基本的に同じ機能を生成するコードがいくつかありますか? reflect
やそれに類するものを使わないと?
あなたの質問はかなり不明です。 「明らかにこれはできない」という意味で「これ」が何を意味するのかを明確にしてください。 – nos
上記のコードを意味する「this」は、私のためにエラーを投げた。質問はより明確に編集されました。 – Benjam