Online Pazarlama Bloğu

1GoLang de İki Dizi Arasındaki Farkı Bulma

January 29, 2019 • ☕️ 1 dk okuma • 🏷 bilgisayar, yazılım

Yazar tarafından şu dillere çevrildi: DeutschEnglishItalianoРусский

Elimizde iki adet dizi olduğu düşünelim. Bu iki diziden bir tanesinin elemanlarının diğer dizinin içerisinde olmayanlarını belirlemek istediğimizde, bu iki diziyi bir karşılaştırma işlemine sokmamız gerekiyor. Aşağıda bu işlemi GoLang programlamla dilinde yerine getiren örnek bir fonksiyon yer almaktadır.

Örnek diziler ve bu dizilerin karşılaştırması sonucunda elde edilmesi beklenen çıktı şu şekilde:

dizi1 := []int8{1, 2, 3, 4, 5}
dizi2 := []int8{3, 4, 5}

// sonuç
dizi1 / dizi2 => {1, 2}

GoLang de iki diziyi karşılaştırıp farkını bulan fonksiyon:

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
}

İki dizinin farkını bulma işlemi:

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 =>  []
}

Kodun çalışır halini test etmek için => RUN