Ich habe eine Reihe von Strukturen.List Verständnis in Go
var a = [] struct {
f1 string
f2 string
}{
{"foo", "bar"},
{"biz", "baz"},
}
Ich mag, wie
var f2s []string
for _, s := range a {
f2s = append.f2s(s.f2)
}
// f2s = {"bar", "baz"}
SomeFunc(f2s)
so einen Array der f2
Felder an eine Funktion zu übergeben Gibt es einen idiomatischen Weg, dies zu tun? In Python würde ich SomeFunc([s.f2 for s in a])
tun. In einer funktionalen Sprache würde ich (SomeFunc (map (lambda (s) (s.f2)) a))
tun.
(Ignorieren der verpfuschten Syntax in Ihrem Beispiel): Nein. Das ist so ziemlich wie Sie es tun. In Go gibt es weder Listenverständnis noch Map, und Loops sind sehr idiomatisch. –
Das ist ein Stück Struktur, kein Array. In Go sind Arrays und Slices ganz anders! [Hier ist die definitive Quelle.] (Http://golang.org/doc/articles/slices_usage_and_internals.html) –