Slide 11
Slide 11 text
題材: github.com/makiuchi-d/linq
● C#のLINQをGoの型パラメータを使って実装
○ コレクションに対してクエリ操作をするライブラリ
○ 詳しくはGo Conference 2022 Springの発表にて
■ 型パラメータが使えるようになったので LINQを実装してみた
● ただし発表後v2になったため一部異なります
src := []int{3, 8, 2, 1, 5, 7, 4, 6}
e1 := linq.FromSlice(src)
e2 := linq.Where(e1, func(n int) (bool, error) { return n%2 == 0, nil })
e3 := linq.OrderBy(e2, func(n int) (int, error) { return n, nil })
s, _ := linq.Aggregate(e3, "", func(s string, n int) (string, error) {
return fmt.Sprintf("%s%d,", s, n), nil
})
fmt.Println(s) // "2,4,6,8,"