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 å gruppere kode i gjenbrukbare og tilpasningsbare moduler. Golang har sin egen karakteristiske syntaks, funksjoner og filosofi. I motsetning til andre språk er ikke løsningen like åpenbar når det gjelder begrepene om klasse og gjenstand i . I denne artikkelen skal vi utforske om Go har et konsept om klasse og en gjenstand og hvordan det er sammenlignet med andre programmeringsspråk.

Hva er en klasse og et objekt?

Før vi kan svare på om har klasser og gjenstander , må vi 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 gjenstander . An gjenstand er opprettet som en forekomst av en klasse når minnet er tildelt og dets tilstand initialiseres ved kjøring. Klasser og gjenstander er nøkkelbyggesteiner 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 kalt strukturer. Disse strukturer kombinere flere elementer eller egenskaper og tillate inkludering av metoder – funksjoner som opererer på forekomster av struktur. Samtidig som strukturer dele noen likheter med klasser som arv og grensesnitt, er det også bemerkelsesverdige forskjeller. For eksempel, har ikke en konstruktør – en unik metode som initialiserer et objekts tilstand ved opprettelse, slik det vanligvis finnes i klassebaserte språk.







Grensesnitt i Golang

har et konsept som er som gjenstander : grensesnitt . An grensesnitt er en samling metoder som beskriver en atferd eller funksjonalitet, men uten å spesifisere hvordan den implementeres. Grensesnitt gi en måte å oppnå polymorfisme på , 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 .



hovedpakke
import 'fmt'

type menneske struktur {
navnestreng
}

type Arbeider struktur {
Menneskelig
jobbstreng
}

func ( h Menneske ) Info ( ) {
fmt. Printf ( 'Jeg er s \n ' , h. Navn )
}

func ( w Arbeider ) Info ( ) {
fmt. Printf ( 'Jeg er %s. Jeg er en %s. \n ' , I. Navn , I. jobb )
}

type Person-grensesnitt {
Info ( )
}
funcmain ( ) {
John := Arbeider { Menneskelig { 'John' } , 'arbeider' }
Doe := Menneskelig { 'Doe' }

John. Info ( )
Doe. Info ( )

var personlig

Jeg = John
Jeg. Info ( )

Jeg = Doe
Jeg. Info ( )
}

Vi har laget to strukturer , Menneskelig og Arbeider , i koden ovenfor. Deretter opprettes funksjonene som skriver ut meldingene. De strukturer kalles i hoved- () funksjonen til Person grensesnitt . Vi kan se at Info metoden er implementert av både Arbeider og Menneskelig , derfor variabelen i med typen Person grensesnittet vil fungere korrekt og skrive ut utdataene.





Produksjon



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

gir en forenklet form for polymorfisme . Objektorientert programmering har en funksjon som kalles polymorfisme som gjør at objekter fra forskjellige klasser kan behandles 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å typepåstander, som lar programmerere undersøke innholdet til en grensesnittvariabel og få den underliggende konkrete verdien.

Konklusjon

ikke har klasser eller gjenstander i klassisk forstand; i stedet bruker den strukturer og grensesnitt , som tilbyr sammenlignbar funksjonalitet på en mer enkel og lett måte. har vunnet popularitet blant utviklere som prioriterer enkelhet, lesbarhet og ytelse ved å omfavne en annen filosofi og grammatikk. Selv om å bli kjent med metodikk kan ta litt tid, dens karakteristiske egenskaper og design resulterer i mer effektiv og vedlikeholdbar kode.