cpp

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

Чтобы иметь возможность управлять преобразованием структуры в строку нужно внутри структуры реализовать интерфейс fmt.Stringer:

type Stringer interface {
   String() string
}

Метод String() будет автоматически вызываться при выводе и любом преобразовании структуры в строку. Пример реализации интерфейса fmt.Stringer приведен в листинге 11.11.

Листинг 11.11. Реализация интерфейса fmt.Stringer

package main

import "fmt"

type Point struct {
   X, Y int
}
func (p Point) String() string {
   return fmt.Sprintf("Point X=%d Y=%d", p.X, p.Y)
}
func main() {
   p := Point{10, 20}
   fmt.Println(p)                     // Point X=10 Y=20
   fmt.Println(p.String())            // Point X=10 Y=20
   fmt.Println(fmt.Sprint(p))         // Point X=10 Y=20
   fmt.Println(fmt.Sprintf("%v", p))  // Point X=10 Y=20
   fmt.Println(fmt.Sprintf("%#v", p)) // main.Point{X:10, Y:20}
}

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

Помощь сайту

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

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

cpp