underscore/docs/content/collections/unzip.md
Ruidy 3617c2de8f
docs: update Last documentation to reflect panic behavior
Document that Last panics on empty slices with a clear error message.
Add examples for single element and empty slice cases.

Related to Issue 13 (PR #41)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-16 08:51:36 +01:00

965 B

title date
Unzip 2025-01-16T00:00:00-00:00

Unzip splits a slice of tuples into two separate slices. The inverse operation of Zip. Useful for separating paired data.

package main

import (
 "fmt"
 u "github.com/rjNemo/underscore"
)

func main() {
 // Basic usage
 pairs := []u.Tuple[int, string]{
  {Left: 1, Right: "a"},
  {Left: 2, Right: "b"},
  {Left: 3, Right: "c"},
 }

 nums, letters := u.Unzip(pairs)
 fmt.Println(nums)    // [1, 2, 3]
 fmt.Println(letters) // ["a", "b", "c"]

 // Use case: separating keys and values
 keyValuePairs := []u.Tuple[string, int]{
  {Left: "apple", Right: 5},
  {Left: "banana", Right: 3},
  {Left: "cherry", Right: 8},
 }

 items, counts := u.Unzip(keyValuePairs)
 fmt.Println("Items:", items)   // Items: [apple banana cherry]
 fmt.Println("Counts:", counts) // Counts: [5 3 8]

 // Empty slice
 emptyNums, emptyStrs := u.Unzip([]u.Tuple[int, string]{})
 fmt.Println(emptyNums, emptyStrs) // [] []
}