[英]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.