Ранее мы рассматривали процесс удаления пробелов и других отступов в строке 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, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»