Vérifier si une tranche contient un élément dans Golang

Jay Singh 23 aout 2022
Vérifier si une tranche contient un élément dans Golang

Go manque d’un concept de langage ou d’une fonction de bibliothèque standard pour déterminer si une valeur donnée appartient à une tranche. Vous devrez créer votre propre fonction contient () avec deux paramètres, la tranche et l’élément que vous recherchez.

Nous allons apprendre dans ce tutoriel comment utiliser Golang pour déterminer si un élément est présent ou non.

Utilisez la fonction contains() pour vérifier qu’un élément est présent ou non dans la tranche

Dans cet exemple suivant, contains() est utilisé pour vérifier si un élément est présent ou non dans la tranche.

Exemple 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"))
}

Production:

true
false

Dans l’exemple suivant, nous prenons une tranche d’entiers dans slice1. Cette tranche est examinée pour voir si l’élément 5 est présent.

Exemple 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.")
    }
}

Production:

Element is present.

Le dernier exemple contient une tranche de noms dans un tableau appelé s et vérifie si "Rick" et "Mike" sont présents ou non.

Exemple 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"))
}

Production:

true
false

Article connexe - Go Slice