Функция strings.LastIndexFunc
Функция strings.LastIndexFunc ищет в строке последний символ, для которого переданная пользовательская функция возвращает true. Она возвращает индекс первого байта найденного символа или -1, если ни один символ не удовлетворяет условию. Первым параметром функция принимает строку для поиска, вторым - функцию-предикат, которая определяет условие поиска.
Синтаксис
strings.LastIndexFunc(s string, f func(rune) bool) int
Пример
Давайте найдем индекс последней цифры в строке "abc123def456":
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
s := "abc123def456"
res := strings.LastIndexFunc(s, unicode.IsDigit)
fmt.Println(res)
}
Результат выполнения кода:
11
Пример
Давайте найдем индекс последней буквы в строке "12345abcde":
package main
import (
"fmt"
"strings"
"unicode"
)
func main() {
s := "12345abcde"
res := strings.LastIndexFunc(s, unicode.IsLetter)
fmt.Println(res)
}
Результат выполнения кода:
9
Пример
Давайте используем пользовательскую функцию для поиска последнего символа 'x' в строке:
package main
import (
"fmt"
"strings"
)
func main() {
s := "xabcxdefxghi"
res := strings.LastIndexFunc(s, func(r rune) bool {
return r == 'x'
})
fmt.Println(res)
}
Результат выполнения кода:
9
Пример
Давайте попробуем найти символ, которого нет в строке:
package main
import (
"fmt"
"strings"
)
func main() {
s := "abcde"
res := strings.LastIndexFunc(s, func(r rune) bool {
return r == 'x'
})
fmt.Println(res)
}
Результат выполнения кода:
-1
Смотрите также
-
функцию
strings.IndexFunc,
которая находит индекс первого символа, удовлетворяющего условию -
функцию
strings.LastIndex,
которая находит индекс последнего вхождения подстроки -
функцию
strings.LastIndexAny,
которая находит индекс последнего символа из набора -
функцию
strings.ContainsRune,
которая проверяет наличие конкретного рунического символа