Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Байтовые слайсы. Поиск фрагментов
Выполнить поиск фрагментов внутри байтового слайса позволяют следующие функции:
Index()
— возвращает позицию первого вхождения фрагментаsep
в слайсs
. Если фрагмент не найден, то возвращается значение-1
. Формат функции:
bytes.Index(s []byte, sep []byte) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.Index(arr, []byte("1"))) // 2
fmt.Println(bytes.Index(arr, []byte("3"))) // -1
IndexByte()
— возвращает позицию первого вхождения байтаc
в слайсb
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.IndexByte(b []byte, c byte) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.IndexByte(arr, '1')) // 2
fmt.Println(bytes.IndexByte(arr, '3')) // -1
IndexRune()
— возвращает позицию первого вхождения символаr
в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.IndexRune(s []byte, r rune) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.IndexRune(arr, '1')) // 2
fmt.Println(bytes.IndexRune(arr, '3')) // -1
IndexFunc()
— возвращает позицию первого вхождения символа, для которого функцияf
вернула значениеtrue
, в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.IndexFunc(s []byte, f func(r rune) bool) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.IndexFunc(arr, func(r rune) bool {
return r == '1'
})) // 2
fmt.Println(bytes.IndexFunc(arr, func(r rune) bool {
return r == '3'
})) // -1
IndexAny()
— возвращает позицию первого вхождения одного из символов строкиchars
в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.IndexAny(s []byte, chars string) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.IndexAny(arr, "341")) // 2
fmt.Println(bytes.IndexAny(arr, "345")) // -1
LastIndex()
— возвращает позицию последнего вхождения фрагментаsep
в слайсs
. Если фрагмент не найден, то возвращается значение-1
. Формат функции:
bytes.LastIndex(s []byte, sep []byte) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.LastIndex(arr, []byte("1"))) // 6
fmt.Println(bytes.LastIndex(arr, []byte("3"))) // -1
LastIndexByte()
— возвращает позицию последнего вхождения байтаc
в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.LastIndexByte(s []byte, c byte) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.LastIndexByte(arr, '1')) // 6
fmt.Println(bytes.LastIndexByte(arr, '3')) // -1
LastIndexFunc()
— возвращает позицию последнего вхождения символа, для которого функцияf
вернула значениеtrue
, в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.LastIndexFunc(s []byte, f func(r rune) bool) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.LastIndexFunc(arr, func(r rune) bool {
return r == '1'
})) // 6
fmt.Println(bytes.LastIndexFunc(arr, func(r rune) bool {
return r == '3'
})) // -1
LastIndexAny()
— возвращает позицию последнего вхождения одного из символов строкиchars
в слайсs
. Если ничего не найдено, то возвращается значение-1
. Формат функции:
bytes.LastIndexAny(s []byte, chars string) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.LastIndexAny(arr, "341")) // 6
fmt.Println(bytes.LastIndexAny(arr, "345")) // -1
Count()
— возвращает число вхождений фрагментаsep
в слайсs
. Если фрагмент в слайс не входит, то возвращается значение0
. Формат функции:
bytes.Count(s []byte, sep []byte) int
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.Count(arr, []byte("1"))) // 2
fmt.Println(bytes.Count(arr, []byte("3"))) // 0
Contains()
— возвращает значениеtrue
, если фрагментsubslice
входит в слайсb
, иfalse
— в противном случае. Формат функции:
bytes.Contains(b []byte, subslice []byte) bool
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.Contains(arr, []byte("1"))) // true
fmt.Println(bytes.Contains(arr, []byte("3"))) // false
ContainsRune()
— возвращает значениеtrue
, если символr
входит в слайсb
, иfalse
— в противном случае. Формат функции:
bytes.ContainsRune(b []byte, r rune) bool
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.ContainsRune(arr, '1')) // true
fmt.Println(bytes.ContainsRune(arr, '3')) // false
ContainsAny()
— возвращает значениеtrue
, если один из символов строкиchars
входит в слайсb
, иfalse
— в противном случае. Формат функции:
bytes.ContainsAny(b []byte, chars string) bool
Пример:
arr := []byte("0 1 2 1 0")
fmt.Println(bytes.ContainsAny(arr, "341")) // true
fmt.Println(bytes.ContainsAny(arr, "345")) // false
HasPrefix()
— возвращает значениеtrue
, если слайсs
начинается с фрагментаprefix
, иfalse
— в противном случае. Формат функции:
bytes.HasPrefix(s []byte, prefix []byte) bool
Пример:
arr := []byte("abcd")
fmt.Println(bytes.HasPrefix(arr, []byte("ab"))) // true
fmt.Println(bytes.HasPrefix(arr, []byte("cd"))) // false
HasSuffix()
— возвращает значениеtrue
, если слайсs
заканчивается фрагментомsuffix
, иfalse
— в противном случае. Формат функции:
bytes.HasSuffix(s []byte, suffix []byte) bool
Пример:
arr := []byte("abcd")
fmt.Println(bytes.HasSuffix(arr, []byte("ab"))) // false
fmt.Println(bytes.HasSuffix(arr, []byte("cd"))) // true
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов