Wat is een klasse en een object in Golang?

Wat Is Een Klasse En Een Object In Golang



Fundamentele ideeën in computerprogrammering zoals klas En voorwerp een structuur bieden voor het groeperen van code in herbruikbare en aanpasbare modules. Golang heeft zijn eigen kenmerkende syntaxis, functies en filosofie. In tegenstelling tot andere talen ligt de oplossing niet zo voor de hand als het gaat om de concepten van klas En voorwerp in Gaan . In dit artikel zullen we onderzoeken of Go een concept heeft van klas en een voorwerp en hoe het zich verhoudt tot andere programmeertalen.

Wat is een klasse en een object?

Voordat we kunnen beantwoorden of Gaan heeft klassen En voorwerpen , moeten we eerst definiëren wat ze zijn in de context van programmeren. A klas is een model of sjabloon dat de kenmerken en acties van een verzameling schetst voorwerpen . Een voorwerp is gemaakt als een instantie van een klas wanneer geheugen is toegewezen en de status ervan tijdens runtime wordt geïnitialiseerd. Klassen En voorwerpen zijn belangrijke bouwstenen in klassieke objectgeoriënteerde programmeertalen zoals Java, C++ of C# die polymorfisme, overerving en inkapseling ondersteunen.

Gebouwen in Golang

In Ga, klassen worden vervangen door door de gebruiker gedefinieerde gegevenstypen genaamd structureert. Deze structureert combineer meerdere elementen of eigenschappen en maak de opname van methoden mogelijk - functies die werken op instanties van de structuur. Terwijl structureert delen enkele overeenkomsten met klassen zoals overerving en interfaces, zijn er ook opmerkelijke verschillen. Bijvoorbeeld, Gaan heeft geen constructor - een unieke methode die de status van een object initialiseert bij creatie, zoals typisch wordt aangetroffen in op klassen gebaseerde talen.







Interfaces in Golang

Gaan heeft wel een concept dat lijkt op voorwerpen : interfaces . Een koppel is een verzameling methoden die een gedrag of functionaliteit beschrijven, maar zonder te specificeren hoe het wordt geïmplementeerd. Interfaces een manier bieden om polymorfisme in te bereiken Gaan , waardoor verschillende typen door elkaar kunnen worden gebruikt als ze voldoen aan de vereisten van de interface. Dit is een krachtig concept dat het mogelijk maakt Gaan om een ​​hoge mate van flexibiliteit en uitbreidbaarheid te bereiken zonder concessies te doen aan prestaties of eenvoud.



Gebruik van structuren en interfaces in Golang

Het volgende voorbeeld illustreert het gebruik van structuur En interfaces in Gaan .



pakket belangrijkste
importeren 'fmt'

typ Mens structuur {
naamreeks
}

typ werknemer structuur {
Menselijk
taak tekenreeks
}

func ( h Mens ) Info ( ) {
fmt. Printf ( 'Ik ben %s \N ' , H. naam )
}

func ( w Arbeider ) Info ( ) {
fmt. Printf ( 'Ik ben %s. Ik ben een %s. \N ' , In. naam , In. functie )
}

type Persoonsinterface {
Info ( )
}
functie ( ) {
John := werknemer { Menselijk { 'John' } , 'werknemer' }
Doe := Menselijk { 'Doe' }

John. Info ( )
Doe. Info ( )

was in persoon

i = John
i. Info ( )

i = Doe
i. Info ( )
}

We hebben er twee gemaakt structureert , Menselijk En werknemer , in de bovenstaande code. Vervolgens worden de functies aangemaakt die de berichten afdrukken. De structureert worden genoemd in de voornaamst () functie van de Persoon koppel . We zien dat de Info methode is geïmplementeerd door zowel de werknemer en de Menselijk , dus de variabele i met het type Persoon interface zal correct functioneren en de uitvoer afdrukken.





Uitgang



Gaan heeft een unieke aanpak inkapseling . Inkapseling wordt bereikt in conventionele objectgeoriënteerde programmering door velden privé te maken en ze toegankelijk te maken via getter- en settermethoden. In Gaan , inkapseling wordt bereikt door veldnamen in kleine letters te gebruiken, die alleen zichtbaar zijn binnen hetzelfde pakket. Deze strategie is rechttoe rechtaan en ondubbelzinnig, waardoor het eenvoudiger wordt om te begrijpen hoe de code zich gedraagt ​​en de kans op onvoorziene bijwerkingen wordt verkleind.

Gaan geeft een vereenvoudigde vorm van polymorfisme . Objectgeoriënteerd programmeren heeft een functie genaamd polymorfisme waarmee objecten uit verschillende klassen kunnen worden behandeld als instanties van dezelfde klasse. Gaan biedt niet de conventionele op klassen gebaseerde overerving, maar ondersteunt wel interfaces, die kunnen worden gebruikt om een ​​set methoden te specificeren die een struct moet implementeren. Gaan biedt ook typebevestigingen, waarmee programmeurs de inhoud van een interfacevariabele kunnen onderzoeken en de onderliggende concrete waarde kunnen achterhalen.

Conclusie

Gaan niet heeft klassen of voorwerpen in de klassieke zin; in plaats daarvan gebruikt het structureert En interfaces , die vergelijkbare functionaliteit bieden op een eenvoudigere en lichtere manier. Gaan is populair geworden onder ontwikkelaars die prioriteit geven aan eenvoud, leesbaarheid en prestaties door een andere filosofie en grammatica te omarmen. Hoewel een kennismaking met Ga's methodologie enige tijd in beslag kan nemen, resulteren de onderscheidende kenmerken en het ontwerp in effectievere en onderhoudbare code.