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

Instrukcje dotyczące gry w Zuka Lien Quan Mobile sezon S1 2023

Instrukcje dotyczące gry w Zuka Lien Quan Mobile sezon S1 2023

Zuka to zabójca, który jest postrachem bohaterów o niskim poziomie zdrowia. Dowiedz się, jak skutecznie używać Zuki w sezonie 23.

Najnowszy kod Heroic Era i jak go wykorzystać

Najnowszy kod Heroic Era i jak go wykorzystać

Prawie wszyscy nowi gracze, dołączając do gry, odbierają prezenty za pośrednictwem kodów podarunkowych Heroic Age.

8 najtańszych dostawców pamięci masowej w chmurze

8 najtańszych dostawców pamięci masowej w chmurze

Przyjrzyjmy się najtańszym opcjom przechowywania danych w chmurze, jakie są dostępne. W tym artykule przyjrzymy się cenom zarówno w wartościach bezwzględnych, jak i za gigabajt (za miesiąc), abyś mógł wybrać najlepszą dla siebie opcję.

Czym jest błąd znaku funta (####) w programie Excel?

Czym jest błąd znaku funta (####) w programie Excel?

#### w programie Excel to częsty błąd, który pojawia się w wielu różnych przypadkach, gdy wprowadzamy dane, funkcje i formuły do ​​programu Excel.

12 ustawień w telefonach Samsung Galaxy, które powinieneś zmienić

12 ustawień w telefonach Samsung Galaxy, które powinieneś zmienić

Właśnie kupiłeś telefon Samsung Galaxy i musisz go skonfigurować? Oto 10 ustawień, które warto zmienić, aby Twój telefon Samsung działał lepiej.

Najnowsze kody do gry Murder Mystery 2 i jak je wprowadzić

Najnowsze kody do gry Murder Mystery 2 i jak je wprowadzić

Code Murder Mystery 2 pozwala graczom wybierać więcej skórek noży dla swoich postaci lub zdobywać więcej pieniędzy na usługi i inne rzeczy w grze.

28 pięknych wzorów kartek urodzinowych z życzeniami dla rodziców, małżonków, kochanków, przyjaciół

28 pięknych wzorów kartek urodzinowych z życzeniami dla rodziców, małżonków, kochanków, przyjaciół

W dniu urodzin ukochanej osoby, rodziców, przyjaciół, rodzeństwa, współpracowników... oprócz prezentów nie zapomnij wysłać kartek urodzinowych z życzeniami.

Zabawne, ale słodkie zagadki flirtowe, które „zdobędą” serce osoby, w której się zakochasz

Zabawne, ale słodkie zagadki flirtowe, które „zdobędą” serce osoby, w której się zakochasz

Te zabawne quizy pomogą Ci zrobić dobre wrażenie oraz szybko i szczęśliwie zdobyć serce osoby, w której się kochasz.

Corki DTCL sezon 7: Zbuduj przedmioty, standardowy oddział Corki Gunner

Corki DTCL sezon 7: Zbuduj przedmioty, standardowy oddział Corki Gunner

Corki DTCL sezon 7 potrzebuje ochrony lub wsparcia, aby przejąć kontrolę, jeśli chce móc swobodnie niszczyć drużynę przeciwną. Jednocześnie wyposażenie Corkiego musi być również standardowe, aby mógł zadawać skuteczniejsze obrażenia.

Jak pobrać Mini World Royale i instrukcje dotyczące gry

Jak pobrać Mini World Royale i instrukcje dotyczące gry

Oto link do pobrania Mini World Royale i instrukcja gry. Gra będzie dostępna w dwóch wersjach: Mini World Royale APK i Mini World Royale iOS.

Co to jest 1314?

Co to jest 1314?

1314 to liczba często używana przez młodych ludzi jako kod miłości. Jednak nie każdy wie, co oznacza liczba 1314?

Jak chronić swoje zdrowie psychiczne i fizyczne w toksycznym środowisku

Jak chronić swoje zdrowie psychiczne i fizyczne w toksycznym środowisku

Radzenie sobie z toksycznymi sytuacjami może być niezwykle trudne. Oto kilka wskazówek, które pomogą Ci taktownie radzić sobie z toksycznym otoczeniem i zachować spokój ducha.

Sposoby, w jakie muzyka stymuluje mózg

Sposoby, w jakie muzyka stymuluje mózg

Większość ludzi wie, że muzyka nie służy wyłącznie rozrywce, lecz ma o wiele więcej zalet. Oto kilka sposobów, w jaki muzyka stymuluje rozwój naszego mózgu.

Składniki odżywcze, których najczęściej brakuje w diecie

Składniki odżywcze, których najczęściej brakuje w diecie

Dieta jest bardzo ważna dla naszego zdrowia. Jednak w większości naszych diet brakuje tych sześciu ważnych składników odżywczych.

Jak korzystać z aplikacji CK Club Circle K, aby otrzymywać atrakcyjne oferty

Jak korzystać z aplikacji CK Club Circle K, aby otrzymywać atrakcyjne oferty

Aby najszybciej otrzymywać informacje promocyjne od Circle K, zainstaluj aplikację CK Club. Aplikacja zapisuje płatności dokonywane podczas zakupów lub płacenia w Circle K, a także liczbę zebranych pieczątek.