---
name: find
kind: function
lang: go
domain: core
version: "1.0.0"
purity: pure
signature: "func Find[T any](slice []T, predicate func(T) bool) Option[T]"
description: "Devuelve el primer elemento del slice que cumple el predicado, envuelto en Option."
tags: [slice, functional, generic, search]
uses_functions: []
uses_types: [option_go_core]
returns: [option_go_core]
returns_optional: false
error_type: ""
imports: []
params:
  - name: slice
    desc: "slice donde buscar"
  - name: predicate
    desc: "función que evalúa cada elemento; retorna true para el buscado"
output: "Option[T] envolviendo el primer elemento que cumple, o None si ninguno cumple"
tested: false
tests: []
test_file_path: ""
file_path: "functions/core/find.go"
---

## Ejemplo

```go
nums := []int{1, 2, 3, 4, 5}
result := Find(nums, func(n int) bool { return n > 3 })
// result es Some(4)
```

## Notas

Funcion pura generica. Implementacion en devfactory/core.
