Ранее мы рассматривали процесс удаления пробелов и других отступов в строке Golang. Далее будет дана инструкция для добавления отступов в тексте. Используемые принципы напоминают те способы, что были описаны в предыдущих статьях.
Как добавить отступ в тексте Golang?
1. Создайте файл main.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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
package main import ( "fmt" "strconv" "strings" "unicode" ) func main() { text := "Hi! Go is awesome." text = Indent(text, 6) fmt.Println(text) text = Unindent(text, 3) fmt.Println(text) text = Unindent(text, 10) fmt.Println(text) text = IndentByRune(text, 10, '.') fmt.Println(text) } // Indent добавляет отступ в строку учитывая кол-во // повторов из indent и повторяемый символ из rune func IndentByRune(input string, indent int, r rune) string { return strings.Repeat(string(r), indent) + input } // Indent добавляет отступ в строку учитывая кол-во повторов из indent func Indent(input string, indent int) string { padding := indent + len(input) return fmt.Sprintf("% "+strconv.Itoa(padding)+"s", input) } // Unindent убирает отступ из строки. В данном случае // в строке меньше отступов, чем указано в "indent" // минимальное значение обоих убрано. func Unindent(input string, indent int) string { count := 0 for _, val := range input { if unicode.IsSpace(val) { count++ } if count == indent || !unicode.IsSpace(val) { break } } return input[count:] } |
2. Запустить код в терминале через go run main.go;
3. Посмотрите на результат:

Как написать код для добавления отступа в строку Go?
Отступы, как и пробелы, довольно просты. В данном случае используются одинаковые опции форматирования. Более читабельная форма реализации indent могла бы использовать функцию Repeat из пакета strings. Функция IndentByRune из предыдущего кода использует данный подход.
При удалении отступа убирается указанное количество пробелов в начале. Реализация Unindent в предыдущем примере удаляет минимальное число начальных пробелов или данных отступов.

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