#788·lo

[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

playground

go
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) = [""]
}