Mi az osztály és az objektum?
Mielőtt megválaszolhatnánk, hogy vajon Megy van osztályok és tárgyakat , először meg kell határoznunk, hogy mik ezek a programozással összefüggésben. A osztály egy olyan modell vagy sablon, amely felvázolja egy gyűjtemény jellemzőit és műveleteit tárgyakat . An tárgy példányaként jön létre a osztály amikor a memória le van foglalva és állapota futás közben inicializálva van. osztályok és tárgyakat kulcsfontosságú építőkövei a klasszikus objektum-orientált programozási nyelveknek, mint például a Java, C++ vagy C#, amelyek támogatják a polimorfizmust, az öröklődést és a beágyazást.
Struktúrák Golangban
Ban ben Menjetek, osztályok nevű felhasználó által definiált adattípusok váltják fel struktúrák. Ezek struktúrák kombináljon több elemet vagy tulajdonságot, és lehetővé tegye metódusok – függvények, amelyek a példányain működnek struct. Míg struktúrák ossza meg néhány hasonlóságot osztályok mint az öröklődés és az interfészek, szintén jelentős különbségek vannak. Például, Megy nem rendelkezik konstruktorral – ez egy egyedi metódus, amely inicializálja az objektum állapotát a létrehozáskor, ahogy az általában az osztályalapú nyelvekben található.
Interfészek Golangban
Megy van egy olyan koncepciója, mint tárgyakat : interfészek . An felület olyan metódusok gyűjteménye, amelyek leírnak egy viselkedést vagy funkcionalitást, de anélkül, hogy meghatároznák a megvalósítás módját. Interfészek módot ad a polimorfizmus elérésére Megy , lehetővé téve a különböző típusok felcserélhető használatát, ha megfelelnek az interfész követelményeinek. Ez egy erőteljes koncepció, amely lehetővé teszi Megy nagyfokú rugalmasság és bővíthetőség elérése érdekében a teljesítmény vagy az egyszerűség feláldozása nélkül.
Struktúrák és interfészek használata Golangban
A következő példa a használatát illusztrálja struct és interfészek ban ben Megy .
csomag fő
import 'fmt'
típusú Ember struct {
név karakterlánc
}
típusú Munkás struct {
Emberi
munkafüzér
}
func ( h Ember ) Info ( ) {
fmt. Printf ( '%s vagyok \n ' , h. név )
}
func ( w Munkás ) Info ( ) {
fmt. Printf ( '%s vagyok. %s vagyok. \n ' , Ban ben. név , Ban ben. munka )
}
típusú Személyes felület {
Info ( )
}
funcmain ( ) {
János := Munkás { Emberi { 'János' } , 'munkás' }
Dámvadtehén := Emberi { 'Dámvadtehén' }
János. Info ( )
Dámvadtehén. Info ( )
Személyben volt
én = János
én. Info ( )
én = Dámvadtehén
én. Info ( )
}
Kettőt hoztunk létre struktúrák , Emberi és Munkás , a fenti kódban. Ezután létrejönnek az üzeneteket kinyomtató funkciók. A struktúrák nevezik a fő- () funkciója a Személy felület . Láthatjuk, hogy a Info módszert mind a Munkás és a Emberi , ezért az i változó a típussal Személy interfész megfelelően fog működni, és kinyomtatja a kimenetet.
Kimenet
Megy egyedi megközelítése van Egységbezárás . Egységbezárás Ez a hagyományos objektum-orientált programozásban valósul meg úgy, hogy a mezőket priváttá teszi, és getter és setter módszerekkel elérhetővé teszi. Ban ben Megy , Egységbezárás kisbetűs mezőnevek használatával érhető el, amelyek csak ugyanazon a csomagon belül láthatók. Ez a stratégia egyszerűbb és egyértelműbb, ami megkönnyíti a kód viselkedésének megértését, és csökkenti az előre nem látható mellékhatások lehetőségét.
Megy egyszerűsített formáját nyújtja polimorfizmus . Az objektum-orientált programozásnak van egy ún polimorfizmus amely lehetővé teszi, hogy a különböző osztályokból származó objektumokat ugyanazon osztály példányaiként kezeljük. Megy nem biztosítja a hagyományos osztály alapú öröklődést, de támogatja az interfészeket, amelyek segítségével megadható a metódusok halmaza, amelyet egy struktúrának végre kell hajtania. Megy típus állításokat is kínál, amelyek segítségével a programozók megvizsgálhatják egy interfészváltozó tartalmát, és megkaphatják a mögöttes konkrét értéket.
Következtetés
Megy nem rendelkezik osztályok vagy tárgyakat klasszikus értelemben; ehelyett használja struktúrák és interfészek , amelyek összehasonlítható funkcionalitást kínálnak egyszerűbben és könnyebben. Megy népszerűségre tett szert a fejlesztők körében, akik az egyszerűséget, az olvashatóságot és a teljesítményt helyezik előtérbe egy másik filozófia és nyelvtan révén. Bár ismerkedés Go's A módszertan eltarthat egy ideig, jellegzetes tulajdonságai és kialakítása hatékonyabb és karbantarthatóbb kódot eredményez.