GoLang de İki Dizi Arasındaki Farkı Bulma
29 Ocak 2020 • ☕️ 1 dk okuma • 🏷 bilgisayar, yazılım, algoritma
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