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

Вызов метода в Go

Вызов пишут через точку после имени значения. Слева стоит переменная или литерал структуры, справа имя метода и скобки, если нужны аргументы. Так же, как к полю, обращаются к действию, привязанному к типу этого значения.

Запишем метод подписи и вызовем его у готового пользователя:

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

Создадим значение и вызовем метод:

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

На экране "ann". Выражение u.Title() читается как «у значения u возьми результат действия Title». Скобки обязательны даже без параметров, как у обычной функции.

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

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

Вызовем метод у литерала:

fmt.Println(User{Name: "max"}.Title())

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

package main import "fmt" type User struct { Name string Age int } func (u User) Title() string { return u.Name } u := User{Name: "kate", Age: 19}

Выведите результат вызова у u.

Добавьте к типу Tag с полем Label метод, который возвращает это поле, создайте значение с "go" и выведите вызов через точку.

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

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