0
バイナリファイルを処理しています。私は任意の構造をとり、それらの構造の配列を返す関数が必要です。どうすればいい?以下は私が達成しようとしているものの簡単な例です。現在、私はそれぞれの構造のための関数を持っています。唯一の違いは、ラインである:任意の構造体を関数パラメータとして渡します。
dataBuf, err := make([]arbitrary_struct_type, numRecs)
type structA struct {
id int32
sDate float64
name string
}
type structB struct {
area int32
polygon string
}
type structC struct {
sTime float64
eTime float64
tSlice int32
kml string
}
func readDataset(grp *Group, arbitrary_struct_type type) ([]arbitrary_struct_type type, error) {
...
dataBuf, err := make([]arbitrary_struct_type, numRecs)
...
return dataBuf, err
}
func main() {
...
a, err := readDataset(grp1, structA)
...
b, err := readDataset(grp2, structB)
...
c, err := readDataset(grp3, structC)
...
}
に使用されているhttps://github.com/strongo/app/blob/master/db/interfaces.go & https://github.com/strongo/app/blob/master/gaedb/database.goでも似たようなことができますやっています私は署名を次のようにします:func readDataset(grp * Group、type)([] arbitrary_struct_type、error)?しかし、それは私が戻り値をどのように渡すかは解決しません。 – JimF
'interface {}'や '[] interface {}'を返すか、インタフェースを定義して '[] YourInterface'を返せます。 –
DB(具体的にはGooge AppEngine Datastore)からエンティティを読み取るのと同様の作業を行うコードへのリンクを追加しました。 –