Hva er en klasse og et objekt i Golang?

Hva er en klasse og et objekt i Golang?
Grunnleggende ideer innen dataprogrammering som klasse og gjenstand Gi en struktur for gruppering av kode til gjenbrukbare og tilpasningsdyktige moduler. Golang har sin egen særegne syntaks, funksjoner og filosofi. I motsetning til andre språk, er løsningen ikke så åpenbar når det gjelder begrepene til klasse og gjenstand i . I denne artikkelen vil vi utforske om Go har et konsept av klasse og en gjenstand og hvordan det sammenligner med andre programmeringsspråk.

Hva er en klasse og et objekt?

Før vi kan svare på om har klasser og objekter, Vi må først definere hva de er i sammenheng med programmering. EN klasse er en modell eller mal som skisserer egenskapene og handlingene til en samling av objekter. An gjenstand er opprettet som et forekomst av en klasse Når minnet blir tildelt og tilstanden initialiseres ved kjøretid. Klasser og objekter er viktige byggesteiner i klassiske objektorienterte programmeringsspråk som Java, C ++ eller C# som støtter polymorfisme, arv og innkapsling.

Strukturer i Golang

I Gå, klasser erstattes av brukerdefinerte datatyper som heter strukturer. Disse strukturer Kombiner flere elementer eller egenskaper og tillater inkludering av metoder - funksjoner som fungerer i tilfeller av struktur. Samtidig som strukturer Del noen likheter med klasser som arv og grensesnitt, det er også bemerkelsesverdige forskjeller. For eksempel, har ikke en konstruktør - en unik metode som initialiserer et objekts tilstand ved opprettelsen, som vanligvis finnes på klassebaserte språk.

Grensesnitt i Golang

har et konsept som er som objekter: grensesnitt. An grensesnitt er en samling av metoder som beskriver en oppførsel eller funksjonalitet, men uten å spesifisere hvordan den implementeres. Grensesnitt gi en måte å oppnå polymorfisme i , slik at forskjellige typer kan brukes om hverandre hvis de tilfredsstiller grensesnittets krav. Dette er et kraftig konsept som muliggjør For å oppnå en høy grad av fleksibilitet og utvidbarhet uten å ofre ytelse eller enkelhet.

Bruk av strukturer og grensesnitt i Golang

Følgende eksempel illustrerer bruken av struktur og grensesnitt i .

pakkehoved
Importer "FMT"
Skriv inn menneskelig struktur
Navnstreng

type arbeiderstruktur
Menneskelig
Jobbstreng

func (h human) info ()
fmt.Printf ("Jeg er %s \ n", h.Navn)

func (w arbeider) info ()
fmt.Printf ("Jeg er %s. Jeg er en %s.\ n ", w.Navn, w.jobb)

Skriv persongrensesnitt
Info ()

FUNCMAIN ()
John: = arbeider human "John", "arbeider"
Doe: = menneskelig "doe"
John.Info ()
Doe.Info ()
var jeg person
i = John
Jeg.Info ()
i = doe
Jeg.Info ()

Vi har opprettet to strukturer, Menneskelig og Arbeider, I koden over. Funksjonene som skriver ut meldingene blir deretter opprettet. De strukturer kalles i hoved-() Funksjonen til Person grensesnitt. Vi kan se at Info metoden er implementert av begge Arbeider og Menneskelig, Derfor variabelen jeg med typen Person Grensesnittet vil fungere riktig og skrive ut utgangen.

Produksjon

har en unik tilnærming til innkapsling. Innkapsling utføres i konvensjonell objektorientert programmering ved å gjøre felt private og gjøre dem tilgjengelige gjennom getter og setter-metoder. I , innkapsling oppnås ved å bruke små feltnavn, som bare er synlige i samme pakke. Denne strategien er mer enkel og entydig, noe som gjør det enklere å forstå hvordan koden oppfører seg og senker muligheten for uforutsette bivirkninger.

gir en forenklet form for Polymorfisme. Objektorientert programmering har en funksjon som heter Polymorfisme som gjør det mulig å behandle objekter fra forskjellige klasser som forekomster av samme klasse. gir ikke den konvensjonelle klassebaserte arven, men den støtter grensesnitt, som kan brukes til å spesifisere et sett med metoder som en struktur må implementere. Tilbyr også type påstander, som lar programmerere undersøke en grensesnittvariables innhold og få den underliggende konkrete verdien.

Konklusjon

har ikke klasser eller objekter i klassisk forstand; I stedet bruker den strukturer og grensesnitt, som tilbyr sammenlignbar funksjonalitet på en mer enkel og lett måte. har fått popularitet blant utviklere som prioriterer enkelhet, lesbarhet og ytelse ved å omfavne en annen filosofi og grammatikk. Selv om det blir kjent med Metodikk kan ta litt tid, dens særegne trekk og design resulterer i mer effektiv og vedlikeholdbar kode.