bytes.Index() function is used to return the index of first sub-byte slice in another byte slice in go.
Index() built-in function of bytes package or bytes.Index() function takes two arguments. One argument as byte slice and another argument as sub-byte slice and returns first index of sub-byte slice in another byte slice in go.
bytes.Index() function prototype:
func Index(s, sep []byte) int or func Index(s []byte, sep []byte) int Input parameters: s: byte slice sep: first byte slice to be searched in byte slice s Return: It returns first index of sub-byte slice "sep" in another byte slice "s" in go
Explanation:
1)
s := []byte("John is doing well")
sep := []byte("is")
Output: 5, since sep sub-slice "is" is present at the 5th index in s byte slice "John is doing well".
2)
s := []byte("John is doing well")
sep := []byte("runi")
Output: -1, since sep sub-slice "runi" is not present at any index in s byte slice "John is doing well".
3)
s := []byte{10, 20, 30}
sep := []byte{20, 30}
Output: 1, since sep sub-slice "{20, 30}" is present at the 1th index in s byte slice "{10, 20, 30}".
4)
s := []byte("去是伟大的!")
sep := []byte("去是伟大的!")
Output: 0, since sep sub-slice "去是伟大的!" is present at the 0th index in s byte slice "去是伟大的!".
5)
s := []byte("hello world")
sep := []byte("")
Output: 0 , since sep sub-slice "" is empty then It returns 0.
Example:
package main
import (
"bytes"
"fmt"
)
// main function
func main() {
s := []byte("John is doing well")
sep := []byte("is")
fmt.Println(bytes.Index(s, sep))
s = []byte("John is doing well")
sep = []byte("runi")
fmt.Println(bytes.Index(s, sep))
s = []byte{10, 20, 30}
sep = []byte{20, 30}
fmt.Println(bytes.Index(s, sep))
s = []byte("去是伟大的!")
sep = []byte("去是伟大的!")
fmt.Println(bytes.Index(s, sep))
s = []byte("hello world")
sep = []byte("")
fmt.Println(bytes.Index(s, sep))
}
Output:
5 -1 1 0 0
To learn more about golang, Please refer given below link:
References: