Как проверить равенство срезов байтов в Golang?
В языке Go фрагмент более мощный, гибкий, удобный, чем массив, и представляет собой легкую структуру данных. Срез представляет собой последовательность переменной длины, в которой хранятся элементы аналогичного типа, вам не разрешается хранить элементы разных типов в одном срезе.
В срезе Go вы можете проверить равенство срезов с помощью функции Equal () . Эта функция возвращает истину, если оба среза равны, или возвращает ложь, если оба среза не равны. Он определен в пакете байтов, поэтому вам необходимо импортировать пакет байтов в свою программу для доступа к функции Equals.
Синтаксис:
func Equal (slice_1, slice_1 [] byte) bool
Здесь мы проверяем равенство между slice_1 и slice_2, и тип возвращаемого значения этой функции - bool. Обсудим эту концепцию на примерах:
Example 1:
// Go program to illustrate how to // check the equality of the slices package main import ( "bytes" "fmt" ) func main() { // Creating and initializing slices of bytes // Using shorthand declaration slice_1 := []byte{ "A" , "N" , "M" , "A" , "P" , "A" , "A" , "W" } slice_2 := []byte{ "A" , "N" , "M" , "A" , "P" , "A" , "A" , "W" } // Checking the equality of the slices // Using Equal function res := bytes.Equal(slice_1, slice_2) if res == true { fmt.Println( "Slice_1 is equal to Slice_2" ) } else { fmt.Println( "Slice_1 is not equal to Slice_2" ) } } |
Выход:
Slice_1 равен Slice_2
Example 2:
// Go program to illustrate how to // check the equality of the slices package main import ( "bytes" "fmt" ) func main() { // Creating and initializing // slices of bytes // Using shorthand declaration slice_1 := []byte{ "A" , "N" , "M" , "A" , "P" , "A" , "A" , "W" } slice_2 := []byte{ "g" , "e" , "e" , "k" , "s" } slice_3 := []byte{ "A" , "N" , "M" , "A" , "P" , "A" , "A" , "W" } // Checking the equality of the slices // Using Equal function res1 := bytes.Equal(slice_1, slice_2) res2 := bytes.Equal(slice_1, slice_3) res3 := bytes.Equal(slice_2, slice_3) res4 := bytes.Equal([]byte( "GeeksforGeeks" ), []byte( "GeeksforGeeks" )) res5 := bytes.Equal([]byte( "Geeks" ), []byte( "GFG" )) res6 := bytes.Equal(slice_1, []byte( "P" )) // Displaying results fmt.Println( "Result 1:" , res1) fmt.Println( "Result 2:" , res2) fmt.Println( "Result 3:" , res3) fmt.Println( "Result 4:" , res4) fmt.Println( "Result 5:" , res5) fmt.Println( "Result 6:" , res6) } |
Выход:
Результат 1: ложь Результат 2: верно Результат 3: ложь Результат 4: верно Результат 5: ложь Результат 6: ложь