Co je to třída a objekt?
Než odpovíme, zda Jít má třídy a objektů , musíme nejprve definovat, co jsou v kontextu programování. A třída je model nebo šablona, která nastiňuje vlastnosti a akce kolekce objektů . An objekt je vytvořen jako instance a třída když je alokována paměť a její stav je inicializován za běhu. Třídy a objektů jsou klíčovými stavebními kameny v klasických objektově orientovaných programovacích jazycích jako Java, C++ nebo C#, které podporují polymorfismus, dědičnost a zapouzdření.
Struktury v Golangu
v Jdi, třídy jsou nahrazeny uživatelem definovanými datovými typy tzv struktury. Tyto struktury kombinovat více prvků nebo vlastností a umožnit zahrnutí metod – funkcí, které fungují na instancích strukturovat. Zatímco struktury sdílet některé podobnosti s třídy jako je dědičnost a rozhraní, existují také výrazné rozdíly. Například, Jít nemá konstruktor – jedinečnou metodu, která inicializuje stav objektu při vytvoření, jak se obvykle vyskytuje v jazycích založených na třídách.
Rozhraní v Golangu
Jít má koncept, který je jako objektů : rozhraní . An rozhraní je kolekce metod, které popisují chování nebo funkcionalitu, ale bez upřesnění, jak jsou implementovány. Rozhraní poskytují způsob, jak dosáhnout polymorfismu v Jít , což umožňuje různé typy zaměnitelně, pokud splňují požadavky rozhraní. Toto je silný koncept, který umožňuje Jít dosáhnout vysokého stupně flexibility a rozšiřitelnosti bez obětování výkonu nebo jednoduchosti.
Použití struktur a rozhraní v Golangu
Následující příklad ilustruje použití strukturovat a rozhraní v Jít .
hlavní balíček
import 'fmt'
typu Člověk strukturovat {
jmenný řetězec
}
typu Dělník strukturovat {
Člověk
pracovní řetězec
}
func ( h Člověk ) Info ( ) {
fmt. Printf ( 'Jsem s \n ' , h. název )
}
func ( w Pracovník ) Info ( ) {
fmt. Printf ( 'Jsem %s. Jsem %s.' \n ' , V. název , V. práce )
}
rozhraní typu Osoba {
Info ( )
}
funcmain ( ) {
John := Pracovník { Člověk { 'John' } , 'pracovník' }
Srna := Člověk { 'Srna' }
John. Info ( )
Srna. Info ( )
byl osobně
i = John
i. Info ( )
i = Srna
i. Info ( )
}
Vytvořili jsme dvě struktury , Člověk a Pracovník , v kódu výše. Poté jsou vytvořeny funkce, které zprávy tisknou. The struktury jsou nazývány v hlavní () funkce Osoba rozhraní . Můžeme vidět, že Info metoda byla implementována oběma Pracovník a Člověk , tedy proměnná i s typem Osoba rozhraní bude fungovat správně a vytiskne výstup.
Výstup
Jít má jedinečný přístup zapouzdření . Zapouzdření je dosaženo v konvenčním objektově orientovaném programování tím, že pole se stává soukromým a zpřístupňuje se pomocí metod getter a setter. v Jít , zapouzdření je dosaženo použitím malých názvů polí, které jsou viditelné pouze ve stejném balíčku. Tato strategie je přímočařejší a jednoznačnější, což usnadňuje pochopení toho, jak se kód chová, a snižuje možnost nepředvídaných vedlejších účinků.
Jít poskytuje zjednodušenou formu polymorfismus . Objektově orientované programování má funkci tzv polymorfismus což umožňuje, aby se s objekty z různých tříd zacházelo jako s instancemi stejné třídy. Jít neposkytuje konvenční dědičnost na základě tříd, ale podporuje rozhraní, která lze použít k určení sady metod, které musí struktura implementovat. Jít také nabízí typová tvrzení, která umožňují programátorům prozkoumat obsah proměnné rozhraní a získat základní konkrétní hodnotu.
Závěr
Jít nemá třídy nebo objektů v klasickém smyslu; místo toho používá struktury a rozhraní , které nabízejí srovnatelné funkce přímočařejším a lehčím způsobem. Jít si získal oblibu mezi vývojáři, kteří upřednostňují jednoduchost, čitelnost a výkon přijetím jiné filozofie a gramatiky. I když seznamování s Go's Metodologie může nějakou dobu trvat, její charakteristické rysy a design vedou k efektivnějšímu a udržitelnějšímu kódu.