#GoでArray.find()のような関数を使う
GoでJavaScriptのArray.find()ような関数を使うには、
下記のようにloのFind()を使います。
loはLodashのようにslice
やmap
を処理する関数を提供します。
package main
import (
"fmt"
"github.com/samber/lo"
)
type Item struct {
Name string
Price int
}
func main() {
items := []*Item{
{
Name: "foo",
Price: 11,
},
{
Name: "bar",
Price: 23,
},
{
Name: "baz",
Price: 15,
},
{
Name: "qux",
Price: 23,
},
}
item, result := lo.Find(items, func(i *Item) bool { return i.Price == 23 })
if result {
// &main.Item{Name:"bar", Price:23}
fmt.Printf("%#v\n", item)
}
}