我有一系列结构.
var a = [] struct {
f1 string
f2 string
}{
{"foo", "bar"},
{"biz", "baz"},
}
Run Code Online (Sandbox Code Playgroud)
我想将一个f2字段数组传递给一个函数,就像这样
var f2s []string
for _, s := range a {
f2s = append.f2s(s.f2)
}
// f2s = {"bar", "baz"}
SomeFunc(f2s)
Run Code Online (Sandbox Code Playgroud)
有没有比较惯用的方法呢?在Python中,我会这样做SomeFunc([s.f2 for s in a]).用功能语言我会这样做(SomeFunc (map (lambda (s) (s.f2)) a)).
不,Go没有列表强制或类似.你的代码看起来很好.对于较长的切片,使用make分配适当的长度可能更好.
小智 5
不,真诚地,他们不会.
地图和列表理解是主流,足以被认为是任何现代语言的基础.
这是一个很好的语言和很棒的想法,但我仍然远远不舒服,而且我常常觉得我的代码很脏,即使它是Go的做事方式的惯用,结构良好的代码.
希望这会在未来发生变化.
| 归档时间: |
|
| 查看次数: |
5409 次 |
| 最近记录: |