Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Методы структур
Методы описываются точно так же как и обычные функции. Только между ключевым словом func
и названием функции добавляется объявление переменной с типом структуры внутри круглых скобок:
func (<Переменная> <Структура>) <Название метода>...
Пример:
func (p Point) GetX() int {
return p.x
}
В этом случае через переменную p
доступна копия экземпляра структуры. Если нужно изменять поля структуры внутри метода, то нужно передавать указатель:
func (<Указатель> *<Структура>) <Название метода>...
Пример:
func (p *Point) SetX(n int) {
if n < 0 {
return
}
p.x = n
}
При обращении к методам используется следующий формат:
<Экземпляр структуры>.<Имя метода>([<Параметры>])
Пример использования методов приведен в листинге 11.6.
Листинг 11.6. Методы структур
package main
import "fmt"
type Point struct {
x, y int
}
func main() {
obj := NewPoint(10, 20)
fmt.Println(obj.GetX()) // 10
fmt.Println(obj.GetY()) // 20
obj.SetX(30)
obj.SetY(40)
fmt.Println(obj) // {30 40}
}
func NewPoint(x, y int) Point {
if x < 0 || y < 0 {
return Point{0, 0}
}
return Point{x, y}
}
func (p Point) GetX() int {
return p.x
}
func (p Point) GetY() int {
return p.y
}
func (p *Point) SetX(n int) {
if n < 0 {
return
}
p.x = n
}
func (p *Point) SetY(n int) {
if n < 0 {
return
}
p.y = n
}
Реквизиты
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов