Metody w Golangu

Metody w języku Go  są podobne do funkcji, z jedną zasadniczą różnicą: mają argument odbiorcy , który umożliwia dostęp do właściwości odbiorcy . Odbiornik może być typu struct lub non-struct, ale oba muszą znajdować się w tym samym pakiecie. Nie można tworzyć metod dla typów zdefiniowanych w innych pakietach, w tym dla typów wbudowanych, takich jak int lub string ; W przeciwnym wypadku kompilator zgłosi błąd.

Metody w Golangu

Na przykład:

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()
}

Wynik:

Name: a
Age: 25

Składnia

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

Odbiornik: Można uzyskać do niego dostęp za pomocą tej metody.

Metoda z odbiornikiem typu struktury

W języku Go można zdefiniować metodę, w której odbiorca jest typu struct. Odbiornik jest dostępny wewnątrz metody. Poprzedni przykład ilustruje to podejście na przykładzie odbiornika typu struct.

Metoda z odbiornikiem nie jest typem struktury

Język Go pozwala również na posiadanie przez metody odbiorników niebędących strukturami, pod warunkiem, że typ odbiornika i definicja metody znajdują się w tym samym pakiecie. Nie można zdefiniować metody z typem odbiornika z innego pakietu (np. int, string).

Na przykład:

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)
}

Wynik:

Square of 4 is 16

Metoda ze wskaźnikiem odbiornika

W języku Go metody mogą mieć odbiorniki wskaźników. Dzięki temu zmiany wprowadzone w metodzie mogą być odzwierciedlone w programie wywołującym, co nie jest możliwe w przypadku odbiorników wartości.

Składnia:

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

Na przykład:

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)
}

Wynik:

Before: a
After: b

Metoda akceptuje zarówno wskaźnik, jak i wartość

W przeciwieństwie do funkcji, metody języka Go mogą akceptować zarówno odbiorniki wartości, jak i wskaźniki. Możesz przekazać wskaźniki lub wartości, a metoda obsłuży je odpowiednio.

Na przykład:

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()
}

Wynik:

After pointer method: b
Name: b

Różnica między metodą a funkcją

Metoda Szczęka
Zawiera odbiornik Nie zawiera odbiornika
Można zdefiniować metody o tej samej nazwie, ale różnych typach. Nie są dozwolone funkcje o tej samej nazwie, ale różnych typach.
Nie można używać jako stopnia najwyższego Można używać jako obiektów nadrzędnych

Zostaw komentarz

Jak naprawić błąd logowania internetowego w aplikacji Microsoft Teams

Jak naprawić błąd logowania internetowego w aplikacji Microsoft Teams

Masz problem z logowaniem przez Internet w Microsoft Teams? Uzyskaj natychmiastowe rozwiązania typowych problemów, takich jak „Coś poszło nie tak” lub „Logowanie się zapętla”. Przewodnik krok po kroku, jak rozwiązać problemy z logowaniem przez Internet w Teams i zachować produktywność. Zaktualizowano o najnowsze poprawki przeglądarki.

Jak naprawić błąd w samouczku dotyczącym przewodnika Microsoft Teams

Jak naprawić błąd w samouczku dotyczącym przewodnika Microsoft Teams

Masz problem z błędem w samouczku Microsoft Teams? Odkryj proste rozwiązania krok po kroku, aby szybko go rozwiązać. Wyczyść pamięć podręczną, zaktualizuj i wiele więcej, aby zapewnić płynną pracę zespołową. Zaktualizowano do najnowszych wersji!

Jak naprawić błędy odtwarzania multimediów w aplikacji Microsoft Teams w 2026 roku

Jak naprawić błędy odtwarzania multimediów w aplikacji Microsoft Teams w 2026 roku

Masz dość błędów odtwarzania multimediów w Microsoft Teams, które psują Twoje spotkania w 2026 roku? Skorzystaj z naszego eksperckiego przewodnika krok po kroku, aby szybko naprawić błędy dźwięku, obrazu i udostępniania – bez konieczności posiadania umiejętności technicznych. Bezproblemowa współpraca czeka!

Rozwiązywanie problemów z ustawieniami serwera proxy w usłudze Microsoft Teams

Rozwiązywanie problemów z ustawieniami serwera proxy w usłudze Microsoft Teams

Masz problem z błędem proxy w Microsoft Teams? Poznaj sprawdzone sposoby rozwiązywania problemów z ustawieniami proxy w Microsoft Teams. Wyczyść pamięć podręczną, dostosuj ustawienia proxy i wróć do płynnych połączeń w kilka minut dzięki naszemu przewodnikowi eksperta.

Rozwiązywanie problemów z pętlą uruchamiania ekranu powitalnego w aplikacji Microsoft Teams

Rozwiązywanie problemów z pętlą uruchamiania ekranu powitalnego w aplikacji Microsoft Teams

Frustruje Cię pętla uruchamiania ekranu powitalnego w Microsoft Teams? Postępuj zgodnie ze sprawdzonymi krokami rozwiązywania problemów z pętlą uruchamiania ekranu powitalnego w Microsoft Teams: wyczyść pamięć podręczną, zresetuj aplikację, zainstaluj ponownie. Wróć do płynnej współpracy w kilka minut!

Dlaczego nie widzę pokoi podgrup na spotkaniu w aplikacji Teams?

Dlaczego nie widzę pokoi podgrup na spotkaniu w aplikacji Teams?

Frustruje Cię brak pokoi spotkań w Teams? Odkryj najczęstsze powody, dla których nie widzisz pokoi spotkań w Teams i postępuj zgodnie z naszymi krok po kroku, aby w kilka minut uruchomić je płynnie. Idealne rozwiązanie zarówno dla organizatorów, jak i uczestników!

Rozwiązywanie problemów z błędami w aplikacji Microsoft Teams: co należy sprawdzić w pierwszej kolejności

Rozwiązywanie problemów z błędami w aplikacji Microsoft Teams: co należy sprawdzić w pierwszej kolejności

Napotkałeś dziś błąd w Microsoft Teams? Ten przewodnik krok po kroku dotyczący rozwiązywania problemów z Microsoft Teams ujawnia pierwsze kroki, które pozwolą szybko go rozwiązać. Szybkie poprawki dotyczące łączności, pamięci podręcznej i aktualizacji, które pozwolą Ci bezproblemowo wrócić do czatowania.

Dlaczego w moim programie Outlook brakuje dodatku Microsoft Teams?

Dlaczego w moim programie Outlook brakuje dodatku Microsoft Teams?

Frustruje Cię brak dodatku Microsoft Teams w Outlooku? Odkryj najważniejsze przyczyny i proste rozwiązania krok po kroku, aby bezproblemowo przywrócić płynną integrację Teams z Outlookiem. Działa z najnowszymi wersjami!

Gdzie znajdują się klucze rejestru aplikacji Microsoft Teams w systemie Windows 11?

Gdzie znajdują się klucze rejestru aplikacji Microsoft Teams w systemie Windows 11?

Odblokuj dokładne lokalizacje kluczy rejestru Microsoft Teams w systemie Windows 11. Przewodnik krok po kroku, jak je znaleźć, uzyskać do nich dostęp i bezpiecznie je modyfikować, aby zapewnić optymalną wydajność i rozwiązywać problemy. Niezbędny dla specjalistów IT i entuzjastów Teams.

Rozwiązywanie problemów ze skrótem klawiaturowym i awariami podczas uruchamiania aplikacji Microsoft Teams

Rozwiązywanie problemów ze skrótem klawiaturowym i awariami podczas uruchamiania aplikacji Microsoft Teams

Masz dość błędów skrótów w Microsoft Teams, które blokują Twój przepływ pracy? Poznaj sprawdzone sposoby na rozwiązanie błędów skrótów i awarii uruchamiania Microsoft Teams, aby zapewnić płynną współpracę. Szybkie i proste rozwiązania w pakiecie!