hkucuk

Finden des Unterschieds zwischen zwei Serien in GoLang

January 29, 2019 • ☕️ 1 min lesen • 🏷 computer, software

Übersetzt vom autor in: DeutschEnglishItalianoРусский


Angenommen, wir haben zwei Sätze von Händen. Wenn wir die Elemente eines dieser beiden Arrays bestimmen möchten, die sich nicht im anderen Array befinden, müssen wir diese beiden Arrays in einen Vergleichsprozess einbeziehen. Das Folgende ist eine Beispielfunktion, die diesen Vorgang in der Programmiersprache GoLang ausführt.

Beispielsequenzen und die erwartete Ausgabe dieser Sequenzen sind wie folgt:

array1 := []int8{1, 2, 3, 4, 5}
array2 := []int8{3, 4, 5}

// result
array1 / array2 => {1, 2}

Die Funktion, die die beiden Arrays in GoLang vergleicht:

func difference(a, b []int8) []int8 {

    target := map[int8]bool{}
    for _, x := range b {
        target[x] = true
    }

    result := []int8{}
    for _, x := range a {
        if _, ok := target[x]; !ok {
            result = append(result, x)
        }
    }

    return result
}

Finden des Unterschieds zwischen zwei Arrays:

func main() {
	
    array1 := []int8{1, 2, 3, 4, 5}
    array2 := []int8{3, 4, 5}

    result := difference(array1, array2)
    fmt.Println("array1 / array2 => ", result)
    // output: array1 / array2 =>  [1 2]

    result2 := difference(array2, array1)
    fmt.Println("array2 / array1 => ", result2)
    // output: array2 / array1 =>  []
}

Um den laufenden Code zu testen => RUN