Golang konstruktør som funksjoner

Golang konstruktør som funksjoner
Go er ikke et objektorientert programmeringsspråk, i det minste ikke i de tradisjonelle OOP-mønstrene. Den låner noen funksjoner og gir forekomster som kommer til OOP. Selv om dette kan være en skremmende migrasjon, spesielt for utvikler fra OOP -språk, gjør det opp for det med sin enkelhet.

I denne artikkelen vil vi diskutere hvordan du oppretter en konstruktør i Go ved å bruke innfødte funksjoner.

Konstruktør som funksjoner

La oss definere en enkel struktur som vist i koden nedenfor:

Skriv brukerstruktur
Navnstreng
Alder int
Lønn Float64

Fra strukturen kan vi lage en funksjon som konstruktør som vist i eksemplet:

func user_info (navnestreng, alder int, lønn float64) *bruker
u: = ny (bruker)
u.Navn = Navn
u.Alder = alder
u.Lønn = lønn
return u

Ovennevnte vil lage en konstruktørlignende funksjon fra brukertypen. Hvis vi sjekker typen, bør vi få:

fmt.Println (reflekterer.Typeof (user_info ("Jonathan Archer", 45, 140000.33)))
*hoved.Bruker

Når du ser måten å lage konstruktører i, er å lage funksjoner som returnerer en oobject -peker.

En eksempelfunksjon er som show:

func (u *bruker) init (navnestreng, alder int, lønn float64)
u.Navn = Navn
u.Alder = alder
u.Lønn = lønn

Vi kan bruke funksjonen som:

Bruker: = Ny (bruker)
bruker.Init ("Jonathan Archer", 45, 140000.33)
fmt.Printf (" %s: %d: %f \ n", bruker.Navn, bruker.Alder, bruker.Lønn)

Konklusjon

I denne artikkelen undersøkte vi hvordan vi introduserer OOP i Go ved hjelp av strukturer og funksjoner som returnerer en peker.