cpp

Преобразование слайса в строку

Преобразовать слайс в строку позволяют функции Sprintln(), Sprint() и Sprintf() из пакета fmt. Эти функции мы уже рассматривали в разд. 4.7. Пример:

arr := []int{10, 20, 30}
var s1 string = fmt.Sprint("arr = ", arr, "\n")
fmt.Print(s1) // arr = [10 20 30]
var s2 string = fmt.Sprintln("arr =", arr)
fmt.Print(s2) // arr = [10 20 30]
var s3 string = fmt.Sprintf("arr = %v\n", arr)
fmt.Print(s3) // arr = [10 20 30]
var s4 string = fmt.Sprintf("arr = %#v\n", arr)
fmt.Print(s4) // arr = []int{10, 20, 30}

Чтобы преобразовать байтовый или символьный слайс в строку достаточно выполнить приведение к типу string:

var arr1 = []byte{'t', 'e', 's', 't'}
var s1 string = string(arr1)
fmt.Println(string(s1)) // test
var arr2 = []rune{'t', 'e', 's', 't'}
var s2 string = string(arr2)
fmt.Println(string(s2)) // test

Для преобразования строкового слайса в строку можно использовать функцию Join() из пакета strings. Функция возвращает строку, в которой элементы строкового слайса elems объединены через разделитель sep. Формат функции:

strings.Join(elems []string, sep string) string

Пример:

// import "strings"
arr := []string{"word1", "word2", "word3"}
s := strings.Join(arr, " + ")
fmt.Println(s)                    // word1 + word2 + word3
s = strings.Join(arr, ", ")
fmt.Println(s)                    // word1, word2, word3
s = strings.Join(arr, "")
fmt.Println(s)                    // word1word2word3

Можно преобразовать слайс в строку в формате JSON. Для этого предназначена функция Marshal() из пакета encoding/json. Формат функции:

json.Marshal(v interface{}) ([]byte, error)

Функция возвращает два значения. Через первое значение доступен байтовый слайс со значением в формате JSON. Через второе значение можно получить сообщение об ошибке или значение nil, если ошибки не возникло. Пример:

// import "encoding/json"
arr := []string{"word1", "word2", "word3"}
b, err := json.Marshal(arr)
fmt.Println(err)         // <nil>
fmt.Println(string(b))   // ["word1","word2","word3"]

Выполнить обратную операцию позволяет функция Unmarshal(). Формат функции:

json.Unmarshal(data []byte, v interface{}) error

В первом параметре указывается байтовый слайс со значением в формате JSON. Во втором параметре нужно передать адрес слайса. Если возникла ошибка, то ее описание возвращается из функции. Пример:

arr := []string{}
b := []byte(`["word1","word2","word3"]`)
err := json.Unmarshal(b, &arr)
fmt.Println(err) // <nil>
fmt.Println(arr) // [word1 word2 word3]

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp