Mis on Golangis klass ja objekt?

Mis On Golangis Klass Ja Objekt



Arvutiprogrammeerimise põhiideed nagu klass ja objektiks pakkuda struktuuri koodi rühmitamiseks korduvkasutatavateks ja kohandatavateks mooduliteks. Golang sellel on oma eristav süntaks, omadused ja filosoofia. Erinevalt teistest keeltest ei ole lahendus mõistete osas nii ilmne klass ja objektiks sisse Mine . Selles artiklis uurime, kas Go-l on kontseptsioon klass ja an objektiks ja kuidas see on võrreldes teiste programmeerimiskeeltega.

Mis on klass ja objekt?

Enne kui saame vastata, kas Mine on klassid ja objektid , peame esmalt määratlema, mis need on programmeerimise kontekstis. A klass on mudel või mall, mis kirjeldab kogumi omadusi ja toiminguid objektid . An objektiks luuakse a eksemplarina klass kui mälu eraldatakse ja selle olek käivitatakse käitusajal. klassid ja objektid on peamised ehitusplokid klassikalistes objektorienteeritud programmeerimiskeeltes, nagu Java, C++ või C#, mis toetavad polümorfismi, pärimist ja kapseldamist.

Struktuurid Golangis

sisse Mine, klassid asendatakse kasutaja määratud andmetüüpidega struktuurid. Need struktuurid kombineerida mitut elementi või atribuuti ja võimaldada kaasata meetodeid – funktsioone, mis töötavad eksemplaridel struktuur. Kuigi struktuurid jaga mõningaid sarnasusi klassid nagu pärand ja liidesed, on ka märkimisväärseid erinevusi. Näiteks, Mine puudub konstruktor – ainulaadne meetod, mis lähtestab objekti loomisel oleku, nagu seda tavaliselt klassipõhistes keeltes leidub.







Liidesed Golangis

Mine tal on kontseptsioon, mis on nagu objektid : liidesed . An liides on meetodite kogum, mis kirjeldab käitumist või funktsionaalsust, kuid ei täpsusta, kuidas seda rakendatakse. Liidesed pakuvad viisi polümorfismi saavutamiseks Mine , mis võimaldab erinevaid tüüpe vaheldumisi kasutada, kui need vastavad liidese nõuetele. See on võimas kontseptsioon, mis võimaldab Mine saavutada kõrge paindlikkuse ja laiendatavuse tase, ohverdamata jõudlust või lihtsust.



Struktuuride ja liideste kasutamine Golangis

Järgmine näide illustreerib kasutamist struktuur ja liidesed sisse Mine .



pakett peamine
importida 'fmt'

tüüp Inimene struktuur {
nime string
}

tüüp Töötaja struktuur {
Inimene
töö string
}

func ( h Inimene ) Info ( ) {
fmt. Printf ( 'Ma olen %s \n ' , h. nimi )
}

func ( w Tööline ) Info ( ) {
fmt. Printf ( 'Ma olen %s. Ma olen %s. \n ' , sisse. nimi , sisse. töö )
}

tüüp Isiku liides {
Info ( )
}
funcmain ( ) {
John := Tööline { Inimene { 'John' } , 'tööline' }
Doe := Inimene { 'Doe' }

John. Info ( )
Doe. Info ( )

oli isikus

i = John
i. Info ( )

i = Doe
i. Info ( )
}

Oleme loonud kaks struktuurid , Inimene ja Tööline , ülalolevas koodis. Seejärel luuakse funktsioonid, mis sõnumeid prindivad. The struktuurid kutsutakse sisse peamine () funktsioon Isik liides . Näeme, et Info meetodit on rakendanud mõlemad Tööline ja Inimene , seega muutuja i tüübiga Isik liides töötab korralikult ja prindib väljundi.





Väljund



Mine on ainulaadne lähenemine kapseldamine . Kapseldamine See saavutatakse tavapärase objektorienteeritud programmeerimisega, muutes väljad privaatseks ja muutes need ligipääsetavaks getter- ja settermeetodite kaudu. sisse Mine , kapseldamine saavutatakse väiketähtedega väljanimede kasutamisega, mis on nähtavad ainult samas paketis. See strateegia on sirgjoonelisem ja ühemõttelisem, mis muudab koodi käitumise mõistmise lihtsamaks ja vähendab ettenägematute kõrvalmõjude võimalust.

Mine pakub lihtsustatud vormi polümorfism . Objektorienteeritud programmeerimisel on funktsioon nimega polümorfism mis võimaldab käsitleda erinevatest klassidest pärit objekte sama klassi eksemplaridena. Mine ei paku tavapärast klassipõhist pärandit, kuid toetab liideseid, mille abil saab määrata meetodite komplekti, mida struktuur peab rakendama. Mine pakub ka tüübiväiteid, mis võimaldavad programmeerijatel uurida liidese muutuja sisu ja saada selle aluseks oleva konkreetse väärtuse.

Järeldus

Mine ei oma klassid või objektid klassikalises mõttes; selle asemel kasutab struktuurid ja liidesed , mis pakuvad võrreldavat funktsionaalsust arusaadavamal ja kergemal viisil. Mine on saavutanud populaarsuse arendajate seas, kes seavad esikohale lihtsuse, loetavuse ja jõudluse, võttes omaks teistsuguse filosoofia ja grammatika. Kuigi tutvudes Mine metoodika võib võtta veidi aega, selle eristavad omadused ja disain toovad kaasa tõhusama ja hooldatavama koodi.