English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В языке Go срезы мощнее, гибче, удобнее и легковеснее, чем массивы. Срезы — это изменяемые последовательности, предназначенные для хранения элементов одного и того же типа; в одном срезе не могут храниться элементы разных типов. В срезах Go можно использоватьCompare()Функция сравнивает два среза типа byte.СравнениеЭта функция возвращает целое значение, которое указывает, равны ли эти срезы или нет, и эти значения:
Если результат равен 0, то slice_1 == slice_2.
Если результат равен -1, то slice_1 < slice_2.
Если результат равен +1, то slice_1 > slice_2.
Эта функция определена в пакете bytes, поэтому вам нужно импортировать пакет bytes в вашем программном обеспечении, чтобы получить доступ к функции Compare.
Синтаксис:
func Compare(slice_1, slice_2 []byte) int
Давайте рассмотрим этот концепт с помощью примера:
// сравнение двух строковых разрезов package main import ( "bytes" "fmt" ) func main() { // использование краткого объявления для создания и инициализации строковых разрезов slice_1 := []byte{'G', 'E', 'E', 'K', 'S'} slice_2 := []byte{'G', 'E', 'e', 'K', 'S'} // сравнение разрезов // использование функции Compare res := bytes.Compare(slice_1, slice_2) if res == 0 { fmt.Println("!..Разрезы равны..!") } else { fmt.Println("!..Разрезы не равны..!") } }
Вывод:
!..Разрезы не равны..!
Пример сравнения двух строковых разрезов:
package main import ( "bytes" "fmt" ) func main() { slice_1 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_2 := []byte{'a', 'g', 't', 'e', 'q', 'm'} slice_3 := []byte{'A', 'N', 'M', 'O', 'P', 'Q'} slice_4 := []byte{'A', 'n', 'M', 'o', 'p', 'Q'} // отображение разрезов fmt.Println("Разрез 1: ", slice_1) fmt.Println("Разрез 2: ", slice_2) fmt.Println("Разрез 3: ", slice_3) fmt.Println("Разрез 4: ", slice_4) // сравнение разрезов, использование Compare res1 := bytes.Compare(slice_1, slice_2) res2 := bytes.Compare(slice_1, slice_3) res3 := bytes.Compare(slice_1, slice_4) res4 := bytes.Compare(slice_2, slice_3) res5 := bytes.Compare(slice_2, slice_4) res6 := bytes.Compare(slice_2, slice_1) res7 := bytes.Compare(slice_3, slice_1) res8 := bytes.Compare(slice_3, slice_2) res9 := bytes.Compare(slice_3, slice_4) res10 := bytes.Compare(slice_4, slice_1) res11 := bytes.Compare(slice_4, slice_2) res12 := bytes.Compare(slice_4, slice_3) res13 := bytes.Compare(slice_4, slice_4) fmt.Println("\nРезультат 1:", res1) fmt.Println("Результат 2:", res2) fmt.Println("Результат 3:", res3) fmt.Println("Результат 4:", res4) fmt.Println("Результат 5:", res5) fmt.Println("Результат 6:", res6) fmt.Println("Результат 7:", res7) fmt.Println("Результат 8:", res8) fmt.Println("Результат 9:", res9) fmt.Println("Результат 10:", res10) fmt.Println("Результат 11:", res11) fmt.Println("Результат 12:", res12) fmt.Println("Результат 13:", res13) }
Вывод:
Срез 1: [65 78 77 79 80 81] Срез 2: [97 103 116 101 113 109] Срез 3: [65 78 77 79 80 81] Срез 4: [65 110 77 111 112 81] Результат 1: -1 Результат 2: 0 Результат 3: -1 Результат 4: 1 Результат 5: 1 Результат 6: 1 Результат 7: 0 Результат 8: -1 Результат 9: -1 Результат 10: 1 Результат 11: -1 Результат 12: 1 Результаты 13: 0