Kurzusok
/
Go
Go
/
Tanterv
/
Metódusok
Me

Metódusok ebben a kurzusban: Go

3 feladat

A(z) Metódusok fogalomról

A metódus egy olyan függvény, amelynek van egy speciális receiver argumentuma. A receiver a saját argumentumlistájában, a func kulcsszó és a metódus neve között jelenik meg.

func (receiver type) MethodName(parameters) (returnTypes) {

}

Metódust csak olyan receiverrel definiálhatsz, amelynek típusa ugyanabban a csomagban van definiálva, mint maga a metódus.

type Person struct {
	Name string
}

func (p Person) Greetings() string {
	return fmt.Sprintf("Welcome %s!", p.Name)
}

s := Person{Name: "Bronson"}
fmt.Println(s.Greetings())
// Output: Welcome Bronson!

Kétféle receiver létezik: érték szerinti és mutató szerinti.

Az érték szerinti receiverrel rendelkező metódusok a kapott érték egy másolatán dolgoznak, vagyis a metóduson belül a receiveren végzett módosítások nem láthatók a hívó számára.

Ha a receiver által mutatott értéket szeretnéd módosítani, mutató szerinti receiverrel is deklarálhatsz metódusokat. Az ilyen módosítások a metódus hívója számára is láthatók.

type rect struct {
	width, height int
}

func (r *rect) squareIt() {
	r.height = r.width
}

r := rect{width: 10, height: 20}
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 20

r.squareIt()
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 10

Több példát is találsz itt. Nézd meg ezt a rövid, metódusokról szóló bemutatót is.

Ne feledd: a metódus nem más, mint egy függvény egy receiver argumentummal.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Metódusok fogalmat

A gyakorlás zárolva

Oldj fel még 2 feladatot, hogy gyakorolhasd a(z) Metódusok fogalmat