Методы в Golang

Методы в Golang  похожи на функции, но с одним существенным отличием: у них есть аргумент- получатель , который позволяет получить доступ к свойствам получателя . Приемник может иметь тип struct или non-struct, но оба должны находиться в одном пакете. Невозможно создавать методы для типов, определенных в других пакетах, включая встроенные типы, такие как int или string ; В противном случае компилятор сообщит об ошибке.

Методы в Golang

Например:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

Результат:

Name: a
Age: 25

Синтаксис

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

Приемник: Доступ к нему можно получить с помощью этого метода.

Метод с приемником структурного типа

В Go можно определить метод, в котором получатель имеет тип struct. Приемник доступен внутри метода. Предыдущий пример иллюстрирует этот подход с помощью Receiver типа struct.

Метод с приемником не является структурным типом

Go также позволяет методам иметь неструктурные приемники, если тип приемника и определение метода находятся в одном пакете. Вы не можете определить метод с типом приемника из другого пакета (например, int, string).

Например:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

Результат:

Square of 4 is 16

Метод с указателем приемника

В Go методы могут иметь приемники-указатели. Это позволяет отражать изменения, внесенные в метод, в вызывающей стороне, что невозможно при использовании приемников значений.

Синтаксис:

func (p *Type) method_name(...Type) Type {    // Code}

Например:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

Результат:

Before: a
After: b

Метод принимает как указатель, так и значение.

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

Например:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

Результат:

After pointer method: b
Name: b

Разница между методом и функцией

Метод Челюсть
Содержит приемник. Не содержит приемник
Можно определить методы с одинаковым именем, но разными типами. Функции с одинаковыми именами, но разными типами не допускаются.
Не может использоваться в качестве превосходной степени. Могут использоваться как объекты высшего порядка

Оставить комментарий

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Как исправить ошибку в Microsoft Teams: пошаговое руководство по работе с Teams

Возникли проблемы с ошибкой в ​​руководстве по использованию Microsoft Teams? Узнайте о проверенных пошаговых способах её быстрого устранения. Очистка кэша, обновление и многое другое для беспроблемного начала работы. Работает на последних версиях!

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Как исправить ошибки воспроизведения мультимедиа в Microsoft Teams в 2026 году

Устали от ошибок воспроизведения мультимедиа в Microsoft Teams, которые портят ваши встречи в 2026 году? Следуйте нашему пошаговому руководству от экспертов, чтобы быстро устранить неполадки со звуком, видео и обменом файлами — никаких технических навыков не требуется. Вас ждет бесперебойное сотрудничество!

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Устранение неполадок с настройками прокси-сервера Microsoft Teams.

Возникли проблемы с ошибкой прокси-сервера Microsoft Teams? Ознакомьтесь с проверенными шагами по устранению неполадок с настройками прокси-сервера Microsoft Teams. Очистите кэш, настройте параметры прокси-сервера и вернитесь к бесперебойным звонкам за считанные минуты с помощью нашего руководства от экспертов.

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Как исправить ошибки синхронизации в Microsoft Teams Task Management

Устали от ошибок синхронизации задач в Microsoft Teams, которые мешают вашей работе? Следуйте нашим пошаговым инструкциям, чтобы восстановить бесперебойную синхронизацию задач между Teams, Planner и To Do. Быстрые решения для мгновенного облегчения!

Где находятся ключи реестра Microsoft Teams в Windows 11?

Где находятся ключи реестра Microsoft Teams в Windows 11?

Найдите точное расположение ключей реестра Microsoft Teams в Windows 11. Пошаговое руководство по поиску, доступу и безопасному изменению этих ключей для оптимальной производительности и устранения неполадок. Незаменимо для ИТ-специалистов и энтузиастов Teams.

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Как очистить кэш Microsoft Teams для устранения проблем с производительностью

Проблемы с медленной работой Microsoft Teams? Узнайте, как пошагово очистить кэш Microsoft Teams, чтобы устранить проблемы с производительностью, задержки, сбои и повысить скорость работы на Windows, Mac, в веб-версии и на мобильных устройствах. Быстрые и эффективные решения!

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Как исправить ошибку Вкладка Wiki в Microsoft Teams не загружается

Возникла проблема с загрузкой вкладки Wiki в Microsoft Teams? Узнайте о проверенных пошаговых решениях, которые помогут быстро устранить проблему, восстановить вкладки Wiki и без лишних хлопот повысить производительность команды.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Где находится Microsoft Teams в Outlook? Как найти отсутствующий значок.

Раздражает отсутствие значка Microsoft Teams в Outlook? Узнайте, где именно его найти, почему он исчезает, и проверенные шаги по его восстановлению для беспроблемных встреч. Обновлено для последних версий!

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Почему я не вижу комнаты для обсуждений в своей встрече Teams?

Разочарованы отсутствием комнат для обсуждений в вашей встрече Teams? Узнайте о главных причинах, по которым вы не видите комнаты для обсуждений в Teams, и следуйте нашим пошаговым инструкциям, чтобы они заработали за считанные минуты. Идеально подходит как для организаторов, так и для участников!

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Как исправить ошибку 1200 в Microsoft Teams на телефоне (iOS/Android)

Устали от ошибки Microsoft Teams 1200, которая прерывает ваши телефонные звонки? Узнайте о быстрых пошаговых решениях для iOS и Android, чтобы быстро восстановить бесперебойную командную работу — никаких технических навыков не требуется!