私は構造体の配列を持っています。Goでのリストの理解
var a = [] struct {
f1 string
f2 string
}{
{"foo", "bar"},
{"biz", "baz"},
}
私はそう
var f2s []string
for _, s := range a {
f2s = append.f2s(s.f2)
}
// f2s = {"bar", "baz"}
SomeFunc(f2s)
これを行うにはより多くの慣用的な方法がありますように、関数にf2
フィールドの配列を渡したいですか? Pythonでは、私はSomeFunc([s.f2 for s in a])
をします。関数型言語では、私は(SomeFunc (map (lambda (s) (s.f2)) a))
を実行します。
(あなたの例では、壊れた構文を無視しています):そうです。 Goにはリストの理解やマップはなく、ループは非常に慣例的です。 –
これは配列ではなく構造体のスライスです。 go配列とスライスはかなり異なっています! [ここには最終的な情報源があります](http://golang.org/doc/articles/slices_usage_and_internals.html) –