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
Sign up and earn $1000 a day ⋙

Leave a Comment

8 rzeczy, o których nie wiedziałeś, że możesz zrobić w aplikacji Samsung Gallery

8 rzeczy, o których nie wiedziałeś, że możesz zrobić w aplikacji Samsung Gallery

Aplikacja Galeria firmy Samsung ma większe możliwości niż mogłoby się wydawać, ale może się to nie wydawać oczywiste.

Składany smartfon Microsoftu nie będzie miał zagięć

Składany smartfon Microsoftu nie będzie miał zagięć

Mówi się, że Microsoft jest coraz bliżej wypuszczenia na rynek swojego pierwszego składanego smartfona, gdy 1 października uzyskał patent na składany telefon z możliwością złożenia o 360 stopni, który nie powoduje powstawania zagnieceń na ekranie.

Google testuje niebieski znacznik wyboru w wyszukiwarce

Google testuje niebieski znacznik wyboru w wyszukiwarce

Google testuje nową funkcję weryfikacji za pomocą niebieskiego znacznika wyboru w wyszukiwarce. Funkcja ta pomoże użytkownikom unikać klikania na fałszywe lub oszukańcze linki do witryn internetowych.

Rozróżnianie Microsoft 365 i Office 2024

Rozróżnianie Microsoft 365 i Office 2024

Na pierwszy rzut oka Microsoft 365 i Office 2024 mogą wydawać się bardzo podobne, ponieważ oba zapewniają dostęp do popularnych i szeroko wykorzystywanych aplikacji firmy Microsoft.

Najnowsze kody do Elemental Dungeons i jak je wprowadzać

Najnowsze kody do Elemental Dungeons i jak je wprowadzać

Kody Elemental Dungeons są niezbędną formą nagrody dla graczy. Podobnie jak w przypadku każdej innej gry online w Robloxie, gracze mogą otrzymywać te asysty w zamian za pieniądze lub inne przedmioty.

Jak powtórzyć pasek tytułu tabeli w programie Word

Jak powtórzyć pasek tytułu tabeli w programie Word

Podczas drukowania dokumentu Word utwórz w nim tabelę. Powtórzenie tytułu w programie Word ułatwia jego śledzenie oraz pozwala na płynne odczytywanie tytułu dokumentu na różnych stronach, zwłaszcza w przypadku długich tytułów.

Jak tworzyć animowane wiadomości w iMessage iOS 18

Jak tworzyć animowane wiadomości w iMessage iOS 18

Nowa aplikacja iMessage w systemie iOS 18 została wzbogacona o animowane wiadomości, efekty tekstowe i wiele opcji do wykorzystania w wysyłanych wiadomościach.

Dlaczego świnie są wrogiem węży?

Dlaczego świnie są wrogiem węży?

Istnieje ciekawy fakt na temat świń, o którym nie wszyscy wiedzą: świnie są uważane za wrogów węży, ponieważ gdy te dwa zwierzęta się spotkają, większość węży stanie się pożywieniem dla świń.

Jaka jest odległość Ziemi od Jowisza – największej planety Układu Słonecznego?

Jaka jest odległość Ziemi od Jowisza – największej planety Układu Słonecznego?

Jaka jest odległość od Ziemi do Jowisza? Jeśli nie wiesz, ten artykuł dowiesz się, jak daleko Jowisz znajduje się od Ziemi.

Odkryj metagenerałów sezonu S1 2023 Lien Quan Mobile

Odkryj metagenerałów sezonu S1 2023 Lien Quan Mobile

Którzy generałowie nie są uwzględnieni w meta-grze Mobile Alliance? Przyjrzyjmy się teraz

Graves DTCL sezon 7.5: standardowe przedmioty, skład Graves Loi Long

Graves DTCL sezon 7.5: standardowe przedmioty, skład Graves Loi Long

Graves DTCL z sezonów 1, 3 i 6 kosztuje tylko 1 sztukę złota i wydaje się być po prostu dodatkowym bohaterem mającym na celu pobudzenie klanu; główna rola we wczesnej fazie gry jest nadal wykorzystywana, ale nie w zbyt dużym stopniu. Od sezonu 7.5 DTCL cena Gravesa gwałtownie wzrosła do 4 sztuk złota i zdecydowanie jest niezastąpionym wyborem, jeśli zdecydujesz się grać Thunder Dragonem lub Gunnerem.

Jak korzystać z oddzielnych dźwięków aplikacji na Samsungu

Jak korzystać z oddzielnych dźwięków aplikacji na Samsungu

W przypadku telefonów Samsung należy korzystać z osobnej aplikacji obsługującej dźwięki. Możesz na przykład słuchać muzyki z Apple Music, a telefon będzie odtwarzał dźwięk przez głośniki samochodu.

Dobre cytaty o pracy, dobre statusy o pracy inspirują Cię do osiągnięcia sukcesu

Dobre cytaty o pracy, dobre statusy o pracy inspirują Cię do osiągnięcia sukcesu

W Internecie można znaleźć wiele dobrych statusów dotyczących pracy. W tym artykule podsumujemy dobre i wartościowe statusy zawodowe.

Podpisy na rocznicę ślubu, znaczące i słodkie statusy na rocznicę ślubu

Podpisy na rocznicę ślubu, znaczące i słodkie statusy na rocznicę ślubu

Jaki jest dobry i pełen znaczenia podpis pod rocznicą ślubu? W tym artykule znajdziesz krótkie, zwięzłe podpisy pod rocznicami, które sprawią, że Twój partner zapamięta je na zawsze.

Lista najnowszych kodów Dai Hiep Phong Van i sposób ich wykorzystania

Lista najnowszych kodów Dai Hiep Phong Van i sposób ich wykorzystania

Code Dai Hiep Phong Van pomaga graczom wykorzystać atrakcyjne nagrody, nawet jeśli dopiero zaczynają poznawać świat gry.