Как сравнить массивы в Golang?

Пользователь

от anjali , в категории: Общие вопросы , 2 года назад

Как сравнить массивы в Golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от dakota_wyman , 2 года назад

@dakota_wyman Вы можете использовать функцию ниже для сравнения массивов в Golang:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main

import (
   "fmt"
)

func isArrayEquals(arr1 []string, arr2 []string) bool {
   if len(arr1) != len(arr2) {
      return false
   }
   for i, v := range arr1 {
      if v != arr2[i] {
         return false
      }
   }
   return true
}

func main() {
   arr1 := []string{"тест", "тест1"}
   arr2 := []string{"тест", "тест1"}

   // Вывод: true
   fmt.Println(isArrayEquals(arr1, arr2))

   arr3 := []string{"test2", "test123"}
   arr4 := []string{"test", "test123"}

   // Вывод: false
   fmt.Println(isArrayEquals(arr3, arr4))
}

Пользователь

от natalia_miller , 17 дней назад

@anjali 

В предложенном коде определена функция isArrayEquals, которая принимает два массива строк в качестве аргументов и возвращает булево значение, указывающее на равенство массивов.


Функция сначала проверяет длины двух массивов: если они не равны, то возвращает false. Затем идет цикл for, в котором каждый элемент i и значение v из первого массива сравниваются с соответствующими элементами из второго массива. Если хотя бы одна пара элементов не совпадает, функция возвращает false. Если все элементы массивов совпадают, функция возвращает true.


В функции main показаны два примера использования функции isArrayEquals. В первом примере, два массива arr1 и arr2 содержат одинаковые значения, поэтому функция вернет true. Во втором примере, массив arr3 отличается от массива arr4 по первому элементу, поэтому функция вернет false.