---
name: group_by
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func GroupBy[T any, K comparable](slice []T, keyFn func(T) K) map[K][]T"
description: "Agrupa elementos de un slice por clave generada con una funcion."
tags: [slice, functional, generic, grouping, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: slice
    desc: "slice de elementos a agrupar"
  - name: keyFn
    desc: "función que extrae la clave de agrupación para cada elemento"
output: "mapa donde cada clave única mapea a un slice de elementos con esa clave"
tested: false
tests: []
test_file_path: ""
file_path: "functions/core/group_by.go"
---

## Ejemplo

```go
groups := GroupBy([]string{"go", "git", "python"}, func(s string) byte { return s[0] })
// groups = map[byte][]string{'g': {"go", "git"}, 'p': {"python"}}
```

## Notas

Funcion pura generica. Implementacion en devfactory/core.
