Поиск слова в строке является одной самых популярных задач разработчика. В большинстве современных языков программирования данная функция включена в стандартную библиотеку. Go не исключение. Далее будет дан способ реализации данного поиска в Go.
Как найти слово в строке Golang?
Создайте файл contains.go со следующим содержимым:
 
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package main import ( 	"fmt" 	"strings" ) const refString = "Mary had a little lamb" func main() { 	lookFor := "lamb" 	contain := strings.Contains(refString, lookFor) 	fmt.Printf("The \"%s\" contains \"%s\": %t \n", refString, lookFor, contain) 	lookFor = "wolf" 	contain = strings.Contains(refString, lookFor) 	fmt.Printf("The \"%s\" contains \"%s\": %t \n", refString, lookFor, contain) 	startsWith := "Mary" 	starts := strings.HasPrefix(refString, startsWith) 	fmt.Printf("The \"%s\" starts with \"%s\": %t \n", refString, startsWith, starts) 	endWith := "lamb" 	ends := strings.HasSuffix(refString, endWith) 	fmt.Printf("The \"%s\" ends with \"%s\": %t \n", refString, endWith, ends) } | 
1. Запустите код, выполнив go run contains.go;
2. Посмотрите на вывод в терминале:

Как работает код поиска слов в строке?
В библиотеке strings есть функции для операций над строками. В данном случае используется функция Contains. Функция Contains просто проверяет, есть в рассматриваемой строке указанное слово, или подстрока. Фактически, в функции Contains используется функция Index.
Чтобы проверить, начинается ли строка с указанной подстроки, используется функция HasPrefix. Чтобы проверить, заканчивается ли строка указанной подстрокой, используется функция HasSuffix.
Фактически функция Contains реализуется через использование функции Index из того же пакета. Можно догадаться, что реализация осуществляется следующим образом: если индекс данной подстроки больше -1, тогда функция Contains возвращает true.
Функции HasPrefix и HasSuffix работают иначе: внутренняя реализация просто проверяет длину строки и подстроки, и если они одинаковы или строка длиннее, тогда запрашиваемая часть строки сравнивается.

Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»