go - Go 中的列表理解

标签 go

我有一个结构数组。

var a = [] struct {
    f1 string
    f2 string
}{
    {"foo", "bar"},
    {"biz", "baz"},
}

我想将 f2 字段的数组传递给函数,就像这样

var f2s []string
for _, s := range a {
    f2s = append.f2s(s.f2)
}
// f2s = {"bar", "baz"}
SomeFunc(f2s)

有没有更惯用的方法来做到这一点?在 Python 中,我会执行 SomeFunc([s.f2 for s in a])。在函数式语言中,我会这样做 (SomeFunc (map (lambda (s) (s.f2)) a)).

最佳答案

不,Go 没有列表强制等。你的代码看起来不错。对于较长的 slice ,最好使用 make 分配适当的长度。

关于go - Go 中的列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17415567/

相关文章:

c++ - 在 C++ 中迭代链表比在具有类似内存访问的 Go 中慢

logging - 在 log.SetOutput(ioutil.Discard) 之后延迟 log.SetOutput(os.Stdout)

Go lang Redis PubSub 在不同的 go 路由中用于发布和订阅

go - 写入另一个范围内的变量?

dictionary - 此代码使用变量 "ok"但未定义

macos - 使用 golang 进行 Mac 交叉编译(或替代方案)

go 测试失败, "can' t 加载包构建约束排除所有 Go 文件”

go - 在 Go 中解码 SOAP 响应

android - 如何将一个简单的 Go 脚本作为 Android 服务运行?

go - 由 grpc proto3 生成的 protobuff 中的蛇形格样式