Функция strings.ContainsRune
Функция strings.ContainsRune проверяет,
содержится ли в строке определенная руна (Unicode-символ).
Она возвращает true, если руна найдена, и
false в противном случае. В отличие от
strings.Contains,
эта функция ищет именно руну, а не подстроку,
что особенно полезно при работе с многобайтовыми символами,
например, эмодзи или иероглифами.
Первым параметром функция принимает строку для поиска,
вторым параметром — руну (тип rune), которую нужно найти.
Синтаксис
strings.ContainsRune(str, ch)
Пример
Давайте проверим, содержит ли строка 'Привет'
букву 'и':
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.ContainsRune("Привет", 'и')
fmt.Println(res)
}
Результат выполнения кода:
true
Руна 'и' входит в состав слова "Привет",
поэтому функция вернула true.
Пример
Теперь проверим, содержит ли та же строка руну 'z':
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.ContainsRune("Привет", 'z')
fmt.Println(res)
}
Результат выполнения кода:
false
Руны 'z' в строке нет, поэтому результат — false.
Пример
Функция корректно работает с многобайтовыми символами,
например, с эмодзи. Проверим наличие эмодзи '😊'
в строке:
package main
import (
"fmt"
"strings"
)
func main() {
res := strings.ContainsRune("Hello 😊 World", '😊')
fmt.Println(res)
}
Результат выполнения кода:
true
Смотрите также
-
функцию
strings.Contains,
которая проверяет наличие подстроки в строке -
функцию
strings.ContainsAny,
которая проверяет наличие любого символа из набора -
функцию
strings.IndexRune,
которая возвращает позицию первого вхождения руны -
функцию
strings.Count,
которая подсчитывает количество вхождений подстроки