Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpMtRs 5 of 280 menu
◀ ▶

Результат метода в Go

Метод может вернуть значение, как обычная функция. После списка параметров пишут тип результата, а в теле используют return. Вызов метода тогда стоит там же, где вызов функции: в присваивании, внутри fmt.Println или в условии.

Вернем имя пользователя строкой:

type User struct { Name string Age int } func (u User) Title() string { return u.Name }

Создадим значение и сохраним результат:

u := User{Name: "ann", Age: 20} label := u.Title() fmt.Println(label)

В label лежит "ann". Результат метода имеет тот тип, который указан после скобок объявления. Его можно сразу передать дальше без промежуточной переменной.

Несколько результатов у метода записывают так же, как у функции: типы через запятую в объявлении и несколько значений в return:

type User struct { Name string Age int } func (u User) Summary() (string, int) { return u.Name, u.Age }

Создадим значение и разберем оба результата:

u := User{Name: "ann", Age: 20} name, age := u.Summary() fmt.Println(name, age)

Дана структура:

package main import "fmt" type User struct { Name string Age int } u := User{Name: "kate", Age: 19}

Добавьте метод, который возвращает только возраст, и выведите результат вызова.

Дан следующий код:

package main type Box struct { Weight int } b := Box{Weight: 4}

Запишите метод с результатом типа bool, который сообщает, тяжелее ли коробка 3, и выведите вызов.

Можно ли использовать результат метода сразу внутри сложения строк без отдельной переменной?

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить