Основы работы со строками в Go

Строка – это последовательность из одного или нескольких символов (букв, цифр и других символов), которые могут выражать константы или переменные. Строки, составленные из Unicode, представляют собой неизменяемые последовательности, в которые нельзя вносить поправки.

Строковый тип данных является очень важной составляющей любой программы, поскольку текст – распространенная форма передачи информации, которую мы используем в повседневной жизни.

В этом мануале по Go мы расскажем, как создавать и отображать строки, как объединять и реплицировать их и как хранить строки в переменных.

Строковые литералы

В Go строки записываются либо обратных кавычках, либо в двойных кавычках. При этом строка будет иметь разные характеристики в зависимости от того, какие кавычки вы используете.

Обратные кавычки (например, как в `hello`) создают необработанный строковый литерал (raw). В необработанном строковом литерале между кавычками может появляться любой символ, кроме других обратных кавычек. Вот пример необработанного строкового литерала:

`Say "hello" to Go!`

Обратный слеш внутри необработанных строковых литералов не имеет особого значения. Например, комбинация \n будет отображаться как фактические символы – слеш и буква. Этим они отличаются от интерпретируемых строковых литералов (interpreted), в которых комбинация \n вставляет новую строку.

Необработанные строковые литералы могут также использоваться для создания многострочных строк:

`Go is expressive, concise, clean, and efficient.
Its concurrency mechanisms make it easy to write programs
that get the most out of multi-core and networked machines,
while its novel type system enables flexible and modular
program construction. Go compiles quickly to machine code
yet has the convenience of garbage collection and the power
of run-time reflection. It's a fast, statically typed,
compiled language that feels like a dynamically typed,
interpreted language.`

Интерпретируемые строковые литералы выражаются символьными последовательностями в двойных кавычках (например, как в «hello»). В кавычках может появляться любой символ, за исключением новой строки и незакрытых двойных кавычек.

В работе чаще используются интерпретируемые строковые литералы, потому что они поддерживают escape-символы.

Теперь, когда вы понимаете, как форматируются строки в Go, давайте посмотрим, как отображать строки в программах.

Вывод строк

Для вывода строки на экран используется пакет fmt и функция Println ():

fmt.Println("Let's print out this string.")
Let's print out this string.

Системные пакеты нужно импортировать, чтобы использовать их. Простая программа для вывода строки будет выглядеть так:

package main
import "fmt"
func main() {
fmt.Println("Let's print out this string.")
}

Объединение строк

Объединение (конкатенация) строк – это создание новой строки путем соединения двух или нескольких строк. Объединять строки можно с помощью оператора +. Помните, что когда вы работаете с числами, + будет оператором сложения, но при использовании со строками это оператор объединения.

Давайте скомбинируем строковые литералы «8host» и «Blog» с помощью оператора fmt.Println():

fmt.Println("8host" + "Blog")
8hostBlog

Чтобы между этими словами был пробел, можно добавить его в строку. Например, в первую строку после слова 8host:

fmt.Println("8host " + "Blog")
8host Blog

Оператор + нельзя использовать между двумя разными типами данных. Например, так нельзя объединять строки и целые числа. Если попытаться сделать следующее:

fmt.Println("8host" + 88)

Вы получите ошибку:

cannot convert "8host" (type untyped string) to type int
invalid operation: "8host" + 88 (mismatched types string and int)

Если вы хотите создать строку «8host88», вы можете поместить число 88 в кавычки («88»), чтобы из целого числа оно стало строкой. Преобразование чисел в строки в процессе объединения может пригодиться при работе с почтовыми индексами или телефонными номерами: ведь код страны и индекс города нужно не складывать, а соединять в одну строку.

Объединив две или больше строк, вы получаете новую строку, которую можно использовать в своей программе.

Хранение строк в переменных

Переменные – это символы, которые вы можете использовать для хранения данных в программе. Переменную можно представить в виде пустого поля, которое заполняется какими-то данными или значениями. Строки являются данными, поэтому вы можете использовать их для заполнения переменной. Объявление строк как переменных может облегчить работу со строками в программах Go.

Чтобы сохранить строку в переменной, просто присвойте переменную этой строке. Для примера объявите переменную v:

v := "8host likes declaring strings."

Примечание: Если вы знакомы с другими языками программирования, вы, вероятно, знаете, что в них имена переменных длиннее – они могут состоять з нескольких символов. Go, однако, предпочитает более короткие имена для переменных. Потому имя переменной v будет более подходящим для Go.

Теперь, когда у вас есть переменная v, которую вы присвоили строке, вы можете отобразить ее следующим образом:

fmt.Println(v)

Затем вы получите следующий вывод:

8host likes declaring strings.

Присвоив строке переменную, вам не нужно повторно вводить строку каждый раз, когда вы хотите ее использовать, что упрощает работу со строками в программах и управление ими.

Заключение

В этом мануале вы ознакомились с основами работы со строковым типом данных в языке программирования Go. Умение создавать и выводить строки, объединять их и сохранять их в переменных пригодится вам при написании программ Go любой сложности.

Читайте также: Форматирование строк в Go

Tags: ,