Нахождение значения индекса указанного байта в срезе байтов в Golang
В языке Go фрагмент более мощный, гибкий, удобный, чем массив, и представляет собой легкую структуру данных. Срез представляет собой последовательность переменной длины, в которой хранятся элементы аналогичного типа, вам не разрешается хранить элементы разных типов в одном срезе.
В срезе байтов Go вы можете найти первое значение индекса указанного байта в данном срезе с помощью функции IndexByte () . Эта функция возвращает индекс первого экземпляра указанного байта в заданном срезе байтов. Если данный байт недоступен в исходном срезе, этот метод вернет -1 . Он определен в пакете байтов, поэтому вам необходимо импортировать пакет байтов в свою программу для доступа к функции IndexByte.
Синтаксис:
func IndexByte (ori_slice [] byte, val byte) int
Здесь ori_slice - это исходный срез, а val - байт, для которого мы хотим найти первое значение индекса. Обсудим эту концепцию с помощью приведенных примеров:
Example 1:
// Go program to illustrate the concept// of the index in the slice of bytespackage main import ( "bytes" "fmt") func main() { // Creating and finding the index // of the slice of bytes // Using IndexByte function res1 := bytes.IndexByte([]byte("****Welcome to GeeksforGeeks****"), byte("o")) res2 := bytes.IndexByte([]byte("Learning how to trim a slice of bytes"), byte("z")) res3 := bytes.IndexByte([]byte("GeeksforGeeks, Geek"), byte("k")) // Display the results fmt.Printf("
Final Value:
") fmt.Printf("
Slice 1: %d", res1) fmt.Printf("
Slice 2: %d", res2) fmt.Printf("
Slice 3: %d", res3)} |
Выход:
Конечное значение: Срез 1: 8 Срез 2: -1 Срез 3: 3
Example 2:
// Go program to illustrate the concept// of the index in the slice of bytespackage main import ( "bytes" "fmt") func main() { // Creating and initializing // the slice of bytes // Using shorthand declaration slice_1 := []byte{"!", "!", "G", "e", "e", "k", "s", "f", "o", "r", "G", "e", "e", "k", "s", "#", "#"} slice_2 := []byte{"A", "p", "p", "l", "e"} slice_3 := []byte{"%", "g", "e", "e", "k", "s", "%"} // Displaying slices fmt.Println("Original Slice:") fmt.Printf("Slice 1: %s", slice_1) fmt.Printf("
Slice 2: %s", slice_2) fmt.Printf("
Slice 3: %s", slice_3) // Finding the index of // the slice of bytes // Using IndexByte function res1 := bytes.IndexByte(slice_1, byte("!")) res2 := bytes.IndexByte(slice_2, byte("p")) res3 := bytes.IndexByte(slice_3, byte("x")) // Display the results fmt.Printf("
Last Index:
") fmt.Printf("
Slice 1: %d", res1) fmt.Printf("
Slice 2: %d", res2) fmt.Printf("
Slice 3: %d", res3) } |
Выход:
Исходный фрагмент: Часть 1: !! GeeksforGeeks ## Ломтик 2: яблоко Срез 3:% компьютерщиков% Последний индекс: Срез 1: 0 Срез 2: 1 Срез 3: -1