[英]get slice of specified field from slice of structs
我有一片包含 10 辆汽车的结构,例如:
type struct car {
engine
window
wheel
}
所以 slice cars 包含 10 个 car 结构。
我想知道 function 是否存在,例如:
var engines string[] = cars.Getfield("engine") // engines will contain 10 engines names
Go 中没有 generics(至少在 2.0 之前没有),所以那里没有很多辅助功能。
如果您需要经常使用此 function,您可以将其实现为类型engines
的方法。
在@Joe-Akanesuvan回答下回答@RodolfoAP问题(没有足够的代表发表评论):
尽管 generics 现在是 Go 的一部分,但 std 中没有函数式编程库,我使用了我在awesome-go
上找到的第一个库,所以这可能不是生产就绪代码,但通常看起来就是这样像:
package main
import (
"fmt"
fp "github.com/repeale/fp-go"
)
type data struct {
field string
anotherField int
}
func main() {
fmt.Printf(
"result: %+v",
fp.Map(func(d data) string { return d.field })(
[]data{
{
field: "apple",
anotherField: 1,
},
{
field: "orange",
anotherField: 2,
},
{
field: "banana",
anotherField: 3,
},
},
),
)
}
代码 output:
result: [apple orange banana]
操场上的代码在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.