package main

import (
“fmt”

"github.com/samber/lo"

)

func main() {
list := []int{0, 1, 2, 3, 4, 5}

result := lo.GroupBy(list, func(i int) int {
    return i % 3
})

for _, item := range result {
    fmt.Printf("%v\n", item)
}

}

这段代码的作用是将一个整数列表按某个条件分组。在这个例子中,条件是对每个整数取3的余数。使用的是github.com/samber/lo包中的GroupBy函数。

我们来看一下代码具体的工作过程:

  1. 定义了一个整数列表list := []int{0, 1, 2, 3, 4, 5}
  2. 使用lo.GroupBy函数对列表中的元素进行分组,条件是对每个整数取3的余数,即i % 3
  3. 将分组结果存储在result变量中。
  4. 遍历并打印分组结果。

具体分组过程如下:

  • 0 % 3 = 0
  • 1 % 3 = 1
  • 2 % 3 = 2
  • 3 % 3 = 0
  • 4 % 3 = 1
  • 5 % 3 = 2

因此,列表将被分成三组:

  • 余数为0的组:[0, 3]
  • 余数为1的组:[1, 4]
  • 余数为2的组:[2, 5]

最终打印结果为:

1
2
3
[0 3]
[1 4]
[2 5]

所以,代码运行后的输出结果如下:

1
2
3
[0 3]
[1 4]
[2 5]