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

Параметры метода в Go

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

Сделаем метод, который дописывает суффикс к имени пользователя:

type User struct { Name string Age int } func (u User) WithSuffix(suffix string) string { return u.Name + suffix }

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

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

На экране "ann-dev". При вызове сначала передается значение получателя, затем аргументы из скобок. Порядок в объявлении: получатель, потом параметры метода.

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

type User struct { Name string Age int } func (u User) Range(minAge, maxAge int) bool { return u.Age >= minAge && u.Age <= maxAge }

Создадим значение и проверим диапазон:

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

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

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

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

Даны переменные:

package main type Pair struct { A int B int } p := Pair{A: 3, B: 7}

Запишите метод с двумя параметрами типа int, который возвращает сумму полей и обоих аргументов, и выведите вызов с 1 и 2.

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

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