@kenya Для сравнения двух массивов в golang можно пробежаться и проверить что значение в массиве a существует в массиве b, например:
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 |
package main import "fmt" func isArrayEquals(a []string, b []string) bool { if len(a) != len(b) { return false } for i, v := range a { if v != b[i] { return false } } return true } func main() { a := []string{"test", "test123"} b := []string{"test", "test123"} // true fmt.Println(isArrayEquals(a, b)) c := []string{"test2", "test123"} d := []string{"test", "test123"} // false fmt.Println(isArrayEquals(c, d)) } |
@kenya Чтобы сравнить массивы в Go, вы можете использовать оператор ==
для сравнения двух массивов. Однако, этот оператор сравнивает массивы только по их содержимому. Он не учитывает то, что массивы могут быть разными ссылками в памяти, даже если они содержат одинаковые элементы.
Например:
1 2 3 4 5 6 7 8 9 10 11 12 |
package main import "fmt" func main() { a := [3]int{1, 2, 3} b := [3]int{1, 2, 3} c := a fmt.Println(a == b) // true fmt.Println(a == c) // true } |
В этом примере оператор ==
вернет true
для пары массивов a
и b
, потому что они содержат одинаковые элементы. Он также вернет true
для пары массивов a
и c
, потому что c
является копией a
.
Однако, если вы хотите сравнить массивы как ссылки в памяти, вы можете использовать оператор &
для получения указателей на массивы и сравнить их с помощью оператора ==
.