Comprobar si un Slice contiene un elemento en Golang

Jay Singh 23 agosto 2022
Comprobar si un Slice contiene un elemento en Golang

Go carece de un concepto de lenguaje o una función de biblioteca estándar para determinar si un valor dado pertenece a una porción. Deberá crear su propia función contiene() con dos parámetros, el slice y el elemento que está buscando.

Aprenderemos en este tutorial cómo usar Golang para determinar si un elemento está presente o no.

Utilice la función contains() para comprobar si un elemento está presente o no en el slice

En el siguiente ejemplo, contains() se usa para comprobar si un elemento está presente o no en el slice.

Ejemplo 1:

package main

import "fmt"

func contains(elems []string, v string) bool {
    for _, s := range elems {
        if v == s {
            return true
        }
    }
    return false
}
func main() {
    fmt.Println(contains([]string{"a", "b", "c"}, "b"))
    fmt.Println(contains([]string{"a", "b", "c"}, "d"))
}

Producción :

true
false

En el siguiente ejemplo, tomamos un slice de enteros en slice1. Este slice se examina para ver si el elemento 5 está presente.

Ejemplo 2:

package main

import "fmt"

func main() {
    slice1 := []int{1, 2, 3, 4, 5}
    var element int = 5

    var result bool = false
    for _, x := range slice1 {
        if x == element {
            result = true
            break
        }
    }
    if result {
        fmt.Print("Element is present.")
    } else {
        fmt.Print("Element is not present.")
    }
}

Producción :

Element is present.

El último ejemplo contiene una porción de nombres en una matriz llamada s y comprueba si "Rick" y "Mike" están presentes o no.

Ejemplo 3:

package main

import "fmt"

func contains(s []string, str string) bool {
    for _, v := range s {
        if v == str {
            return true
        }
    }

    return false
}

func main() {
    s := []string{"Jay", "Rick", "Morty", "Jerry"}
    fmt.Println(contains(s, "Rick"))
    fmt.Println(contains(s, "Mike"))
}

Producción :

true
false

Artículo relacionado - Go Slice