[v2] `ChunkString` behavior inconsistency with `Chunk` for empty input
Author: d-enkCreated Jan 27, 2026Updated Jan 27, 2026
Labelsbugbreaking change
Description
ChunkString and Chunk have inconsistent behavior when handling empty inputs:
Chunk([]rune{}, 1)returns[](empty slice)ChunkString("", 1)returns[""](slice with one empty string)
Expected Behavior
Both functions should return empty collections for empty inputs. ChunkString("", 1) should return [] for consistency with Chunk.
Actual Behavior
package main
import (
"fmt"
"github.com/samber/lo"
)
func main() {
// Chunk returns empty slice
fmt.Printf("Chunk([]rune{}, 1) = %q\n", lo.Chunk([]rune{}, 1))
// Output: Chunk([]rune{}, 1) = []
// ChunkString returns slice with empty string
fmt.Printf(`ChunkString("", 1) = %q`, lo.ChunkString("", 1))
// Output: ChunkString("", 1) = [""]
}Source: samber/lo