Mikä on luokka ja esine?
Ennen kuin voimme vastata, onko Mennä on luokat ja esineitä , meidän on ensin määriteltävä, mitä ne ovat ohjelmoinnin yhteydessä. A luokkaa on malli tai malli, joka hahmottaa kokoelman ominaisuudet ja toiminnot esineitä . An esine luodaan esiintymänä a luokkaa kun muisti on varattu ja sen tila alustetaan ajon aikana. Luokat ja esineitä ovat keskeisiä rakennuspalikoita klassisissa olio-ohjelmointikielissä, kuten Java, C++ tai C#, jotka tukevat polymorfismia, periytymistä ja kapselointia.
Rakenteet Golangissa
Sisään Menkää, luokat korvataan käyttäjän määrittämillä tietotyypeillä nimeltä rakenteet. Nämä rakenteet yhdistää useita elementtejä tai ominaisuuksia ja mahdollistaa menetelmien sisällyttämisen - funktioita, jotka toimivat instansseissa struct. Sillä aikaa rakenteet jakaa joitakin yhtäläisyyksiä luokat Kuten perinnöllisyys ja rajapinnat, on myös huomattavia eroja. Esimerkiksi, Mennä ei ole konstruktoria – ainutlaatuinen menetelmä, joka alustaa objektin tilan luonnin yhteydessä, kuten tyypillisesti luokkapohjaisissa kielissä.
Liitännät Golangissa
Mennä sillä on konsepti, joka on kuin esineitä : käyttöliittymät . An käyttöliittymä on kokoelma menetelmiä, jotka kuvaavat käyttäytymistä tai toiminnallisuutta, mutta eivät määrittele, kuinka se toteutetaan. Liitännät tarjoavat tavan saavuttaa polymorfia Mennä , jolloin eri tyyppejä voidaan käyttää vaihtokelpoisesti, jos ne täyttävät käyttöliittymän vaatimukset. Tämä on tehokas konsepti, joka mahdollistaa Mennä saavuttaa korkea joustavuus ja laajennettavuus suorituskyvystä tai yksinkertaisuudesta tinkimättä.
Rakenteiden ja rajapintojen käyttö Golangissa
Seuraava esimerkki havainnollistaa käyttöä struct ja käyttöliittymät sisään Mennä .
pääpaketti
tuonti 'fmt'
tyyppi Ihminen struct {
nimimerkkijono
}
tyyppi Työntekijä struct {
Ihmisen
työmerkkijono
}
func ( h Ihminen ) Tiedot ( ) {
fmt. Printf ( 'Minä olen s \n ' , h. nimi )
}
func ( w Työntekijä ) Tiedot ( ) {
fmt. Printf ( 'Olen %s. Olen %s. \n ' , Sisään. nimi , Sisään. Job )
}
tyyppi henkilöliittymä {
Tiedot ( )
}
funcmain ( ) {
John := Työntekijä { Ihmisen { 'John' } , 'työntekijä' }
Doe := Ihmisen { 'Doe' }
John. Tiedot ( )
Doe. Tiedot ( )
oli Henkilössä
i = John
i. Tiedot ( )
i = Doe
i. Tiedot ( )
}
Olemme luoneet kaksi rakenteet , Ihmisen ja Työntekijä , yllä olevassa koodissa. Sen jälkeen luodaan viestit tulostavat toiminnot. The rakenteet kutsutaan nimellä pää () toiminto Henkilö käyttöliittymä . Voimme nähdä, että Tiedot menetelmä on toteutettu sekä Työntekijä ja Ihmisen , siksi muuttuja i tyypin kanssa Henkilö käyttöliittymä toimii oikein ja tulostaa tulosteen.
Lähtö
Mennä on ainutlaatuinen lähestymistapa kapselointi . Kapselointi saavutetaan tavanomaisessa olio-ohjelmoinnissa tekemällä kentät yksityisiksi ja saattamalla ne saataville getter- ja setter-menetelmien avulla. Sisään Mennä , kapselointi saavutetaan käyttämällä pieniä kirjaimia kenttien nimiä, jotka näkyvät vain samassa paketissa. Tämä strategia on yksinkertaisempi ja yksiselitteisempi, mikä helpottaa koodin käyttäytymisen ymmärtämistä ja vähentää odottamattomien sivuvaikutusten mahdollisuutta.
Mennä tarjoaa yksinkertaistetun muodon polymorfismi . Olio-ohjelmoinnissa on ominaisuus nimeltä polymorfismi joka mahdollistaa eri luokkien objektien käsittelemisen saman luokan esiintyminä. Mennä ei tarjoa perinteistä luokkapohjaista periytymistä, mutta se tukee rajapintoja, joiden avulla voidaan määrittää joukko menetelmiä, jotka rakenteen on toteutettava. Mennä tarjoaa myös tyyppiväitteitä, joiden avulla ohjelmoijat voivat tutkia käyttöliittymämuuttujan sisältöä ja saada taustalla olevan konkreettisen arvon.
Johtopäätös
Mennä ei ole luokat tai esineitä klassisessa mielessä; sen sijaan se käyttää rakenteet ja käyttöliittymät , jotka tarjoavat vertailukelpoisia toimintoja yksinkertaisemmalla ja kevyemmällä tavalla. Mennä on saavuttanut suosiota kehittäjien keskuudessa, jotka asettavat etusijalle yksinkertaisuuden, luettavuuden ja suorituskyvyn omaksumalla erilaisen filosofian ja kieliopin. Vaikka tutustuminen Mene menetelmä voi viedä jonkin aikaa, sen erityispiirteet ja muotoilu johtavat tehokkaampaan ja ylläpidettävämpään koodiin.