Mam tablicę struktur.Zrozumienie listy w Go
var a = [] struct {
f1 string
f2 string
}{
{"foo", "bar"},
{"biz", "baz"},
}
Chcę przekazać tablicę f2
pól do funkcji, tak jak
var f2s []string
for _, s := range a {
f2s = append.f2s(s.f2)
}
// f2s = {"bar", "baz"}
SomeFunc(f2s)
Czy istnieje bardziej idiomatycznych sposób to zrobić? W Pythonie zrobiłbym SomeFunc([s.f2 for s in a])
. W języku funkcjonalnym zrobiłbym (SomeFunc (map (lambda (s) (s.f2)) a))
.
(Ignorowanie nieudanej składni w twoim przykładzie): Nie. To prawie jak to robisz. W Go nie ma ani spisu, ani mapy, a pętle są bardzo idiomatyczne. –
To jest kawałek struktury, a nie tablicy. W go tablice i plasterki są zupełnie inne! [Tutaj jest ostateczne źródło.] (Http://golang.org/doc/articles/slices_usage_and_internals.html) –