English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Basic Tutorial

Golang Control Statements

Golang Functions & Methods

Golang Struct

Golang Slice & Array

Golang String (String)

Golang Pointers

Golang Interface

Concurrence Golang

Erreurs Golang

Autres éléments divers Golang

Comparaison de slice Go

En langage Go, les tranches sont plus puissantes, flexibles, pratiques et légères que les tableaux. Une tranche est une séquence de longueur variable utilisée pour stocker des éléments du même type, et il n'est pas permis de stocker des éléments de types différents dans la même tranche. Dans les tranches Go, vous pouvez utiliserCompare()La fonction Compare() compare deux tranches de type byteComparaison。Cette fonction retourne une valeur entière qui indique si ces tranches sont égales ou non, et ces valeurs sont :

  • Si le résultat est 0, alors slice_1 == slice_2。

  • Si le résultat est-1,则slice_1 <slice_2。

  • Si le résultat est+1,则slice_1> slice_2。

Cette fonction est définie dans le paquet bytes, par conséquent, vous devez importer le paquet bytes dans votre programme pour accéder à la fonction Compare.

Syntaxe :

func Compare(slice_1, slice_2 []byte) int

Permettons de discuter de ce concept à l'aide d'un exemple :

//Comparaison de deux tranches de bytes
package main
import (
    "bytes"
    "fmt"
)
func main() {
    //Création et initialisation des tranches de bytes avec la déclaration abrégée
    slice_1 := []byte{'G', 'E', 'E', 'K', 'S'}
    slice_2 := []byte{'G', 'E', 'e', 'K', 'S'}
    //Comparaison des tranches
    //Utilisation de la fonction Compare
    res := bytes.Compare(slice_1, slice_2)
    if res == 0 {
        fmt.Println("!..Les tranches sont égales..!")
    } else {
        fmt.Println("!..Les tranches ne sont pas égales..!")
    }
}

Sortie :

!..Les tranches ne sont pas égales..!

Comparaison de deux tranches de bytes :

package main
import (
    "bytes"
    "fmt"
)
func main() {
    slice_1 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'}
    slice_2 := []byte{'a', 'g', 't', 'e', 'q', 'm'}
    slice_3 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'}
    slice_4 := []byte{'A', 'n', 'M', 'o', 'p', 'Q'}
    //Affichage de la tranche
    fmt.Println("Tranche 1: ", slice_1)
    fmt.Println("Tranche 2: ", slice_2)
    fmt.Println("Tranche 3: ", slice_3)
    fmt.Println("Tranche 4: ", slice_4)
    //Comparaison des tranches, utilisation de Compare
    res1 := bytes.Compare(slice_1, slice_2)
    res2 := bytes.Compare(slice_1, slice_3)
    res3 := bytes.Compare(slice_1, slice_4)
    res4 := bytes.Compare(slice_2, slice_3)
    res5 := bytes.Compare(slice_2, slice_4)
    res6 := bytes.Compare(slice_2, slice_1)
    res7 := bytes.Compare(slice_3, slice_1)
    res8 := bytes.Compare(slice_3, slice_2)
    res9 := bytes.Compare(slice_3, slice_4)
    res10 := bytes.Compare(slice_4, slice_1)
    res11 := bytes.Compare(slice_4, slice_2)
    res12 := bytes.Compare(slice_4, slice_3)
    res13 := bytes.Compare(slice_4, slice_4)
    fmt.Println("\nRésultat 1:", res1)
    fmt.Println("Résultat 2:", res2)
    fmt.Println("Résultat 3:", res3)
    fmt.Println("Résultat 4:", res4)
    fmt.Println("Résultat 5:", res5)
    fmt.Println("Résultat 6:", res6)
    fmt.Println("Résultat 7:", res7)
    fmt.Println("Résultat 8:", res8)
    fmt.Println("Résultat 9:", res9)
    fmt.Println("Résultat 10:", res10)
    fmt.Println("Résultat 11:", res11)
    fmt.Println("Résultat 12:", res12)
    fmt.Println("Résultat 13:", res13)
}

Sortie :

coupe 1:  [65 78 77 79 80 81]
coupe 2:  [97 103 116 101 113 109]
coupe 3:  [65 78 77 79 80 81]
coupe 4:  [65 110 77 111 112 81]
Résultat 1: -1
Résultat 2: 0
Résultat 3: -1
Résultat 4: 1
Résultat 5: 1
Résultat 6: 1
Résultat 7: 0
Résultat 8: -1
Résultat 9: -1
Résultat 10: 1
Résultat 11: -1
Résultat 12: 1
Résultat 13: 0