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

Tutorial Básico do Golang

Golang Comandos de Controle

Golang Função & Método

Golang Struct

Golang Slice & Array

Golang String (String)

Golang Ponteiro

Golang Interface

Concorrência do Golang

Erros do Golang

Miscelânea do Golang

Comparação de Slice do Go

no Go, fatias são mais poderosas, flexíveis, convenientes e leves do que arrays. Fatias são sequências de comprimento variável usadas para armazenar elementos do mesmo tipo, não permitindo que diferentes tipos de elementos sejam armazenados na mesma fatia. Em fatias de Go, você pode usarCompare()a função compara fatias de tipos de bytescomparação。Esta função retorna um valor inteiro que representa se essas fatias são iguais ou diferentes, e esses valores são:

  • se o resultado for 0, então fatia_1 == fatia_2。

  • se o resultado for-1,então fatia_1 <fatia_2。

  • se o resultado for+1,então fatia_1> fatia_2。

esta função está definida na pasta bytes, portanto, você deve importar o pacote bytes no seu programa para acessar a função Compare.

sintaxe:

func Compare(fatia_1, fatia_2 []byte) int

vamos discutir este conceito com um exemplo:

//comparar duas fatias de bytes
package main
import (
    "bytes"
    "fmt"
)
func main() {
    //usar declaração abreviada para criar e inicializar fatia de bytes
    fatia_1 := []byte{'G', 'E', 'E', 'K', 'S'}
    fatia_2 := []byte{'G', 'E', 'e', 'K', 'S'}
    //comparar fatias
    //usar função Compare
    res := bytes.Compare(fatia_1, fatia_2)
    if res == 0 {
        fmt.Println("!..as fatias são iguais..!")
    } else {
        fmt.Println("!..as fatias não são iguais..!")
    }
}

saída:

!..as fatias não são iguais..!

comparar duas fatias de bytes exemplo:

package main
import (
    "bytes"
    "fmt"
)
func main() {
    fatia_1 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'}
    fatia_2 := []byte{'a', 'g', 't', 'e', 'q', 'm'}
    fatia_3 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'}
    fatia_4 := []byte{'A', 'n', 'M', 'o', 'p', 'Q'}
    //exibir fatia
    fmt.Println("fatia", 1: ", fatia_1)
    fmt.Println("fatia", 2: ", fatia_2)
    fmt.Println("fatia", 3: ", fatia_3)
    fmt.Println("fatia", 4: ", fatia_4)
    //comparar fatias, usando Compare
    res1 := bytes.Compare(fatia_1, fatia_2)
    res2 := bytes.Compare(fatia_1, fatia_3)
    res3 := bytes.Compare(fatia_1, fatia_4)
    res4 := bytes.Compare(fatia_2, fatia_3)
    res5 := bytes.Compare(fatia_2, fatia_4)
    res6 := bytes.Compare(fatia_2, fatia_1)
    res7 := bytes.Compare(fatia_3, fatia_1)
    res8 := bytes.Compare(fatia_3, fatia_2)
    res9 := bytes.Compare(fatia_3, fatia_4)
    res10 := bytes.Compare(fatia_4, fatia_1)
    res11 := bytes.Compare(fatia_4, fatia_2)
    res12 := bytes.Compare(fatia_4, fatia_3)
    res13 := bytes.Compare(fatia_4, fatia_4)
    fmt.Println("\nresultado", 1:", res1)
    fmt.Println("resultado", 2:", res2)
    fmt.Println("resultado", 3:", res3)
    fmt.Println("resultado", 4:", res4)
    fmt.Println("resultado", 5:", res5)
    fmt.Println("resultado", 6:", res6)
    fmt.Println("resultado", 7:", res7)
    fmt.Println("resultado", 8:", res8)
    fmt.Println("resultado", 9:", res9)
    fmt.Println("resultado", 10:", res10)
    fmt.Println("resultado", 11:", res11)
    fmt.Println("resultado", 12:", res12)
    fmt.Println("resultado", 13:", res13)
}

saída:

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