Cos'è una classe e un oggetto in Golang?

Cos'è una classe e un oggetto in Golang?
Idee fondamentali nella programmazione informatica come classe E oggetto Fornire una struttura per raggruppare il codice in moduli riutilizzabili e adattabili. Golang ha la sua sintassi, caratteristiche e filosofia distintive. Contrariamente ad altre lingue, la soluzione non è così ovvia quando si tratta dei concetti di classe E oggetto In Andare. In questo articolo, esploreremo se Go ha un concetto di classe e un oggetto e come si confronta con altri linguaggi di programmazione.

Cos'è una classe e un oggetto?

Prima di poter rispondere se Andare ha classi E oggetti, Abbiamo prima bisogno di definire ciò che sono nel contesto della programmazione. UN classe è un modello o un modello che delinea le caratteristiche e le azioni di una raccolta di oggetti. UN oggetto è creato come istanza di a classe Quando viene assegnata la memoria e il suo stato viene inizializzato in fase di esecuzione. Classi E oggetti sono blocchi di costruzione chiave nei linguaggi di programmazione orientati agli oggetti classici come Java, C ++ o C# che supportano il polimorfismo, l'eredità e l'incapsulamento.

Strutture in Golang

In Vai, lezioni sono sostituiti da tipi di dati definiti dall'utente chiamati Strutture. Questi Strutture Combina più elementi o proprietà e consenti l'inclusione di metodi - funzioni che operano su istanze del strumento. Mentre Strutture condividere alcune somiglianze con classi Come eredità e interfacce, ci sono anche notevoli differenze. Ad esempio, Andare non ha un costruttore: un metodo unico che inizializza lo stato di un oggetto alla creazione, come si trova in genere nei linguaggi di classe.

Interfacce in Golang

Andare ha un concetto che è come oggetti: interfacce. UN interfaccia è una raccolta di metodi che descrivono un comportamento o una funzionalità, ma senza specificare come viene implementato. Interfacce fornire un modo per raggiungere il polimorfismo in Andare, Consentire a diversi tipi di essere utilizzato in modo intercambiabile se soddisfano i requisiti dell'interfaccia. Questo è un concetto potente che consente Andare Per ottenere un alto grado di flessibilità ed estensibilità senza sacrificare le prestazioni o la semplicità.

Uso di strutture e interfacce in Golang

Il seguente esempio illustra l'uso di strumento E interfacce In Andare.

Pacchetto principale
Importa "FMT"
Digitare la struttura umana
Nome String

tipo di lavoro di lavoro
Umano
stringa di lavoro

func (h umano) info ()
fmt.Printf ("I am %s \ n", h.nome)

func (w worker) info ()
fmt.Printf ("I am %s. Io sono come.\ n ", w.nome, w.lavoro)

Type Person Interface
Informazioni()

funcmain ()
John: = Worker Human "John", "Worker"
Doe: = umano "doe"
John.Informazioni()
Doe.Informazioni()
Var I persona
i = John
io.Informazioni()
i = doe
io.Informazioni()

Ne abbiamo creati due Strutture, Umano E Lavoratore, Nel codice sopra. Le funzioni che stampano i messaggi vengono quindi create. IL Strutture sono chiamati in principale(() funzione di Persona interfaccia. Possiamo vedere che il Informazioni Il metodo è stato implementato da entrambi i Lavoratore e il Umano, Pertanto la variabile I con il tipo Persona L'interfaccia funzionerà correttamente e stampa l'uscita.

Produzione

Andare ha un approccio unico a incapsulamento. Incapsulamento è realizzato nella programmazione convenzionale orientata agli oggetti rendendo i campi privati ​​e rendendoli accessibili tramite i metodi GETTER e SETTER. In Andare, incapsulamento si ottiene utilizzando nomi di campo minuscolo, che sono visibili solo all'interno dello stesso pacchetto. Questa strategia è più semplice e inequivocabile, il che rende più semplice capire come il codice si comporta e riduce la possibilità di effetti collaterali imprevisti.

Andare fornisce una forma semplificata di polimorfismo. La programmazione orientata agli oggetti ha una funzione chiamata polimorfismo che consente agli oggetti di varie classi di essere trattati come istanze della stessa classe. Andare non fornisce l'eredità convenzionale basata su classe, ma fornisce interfacce di supporto, che possono essere utilizzate per specificare un insieme di metodi che una struttura deve implementare. Andare Offre anche asserzioni di tipo, che consentono ai programmatori di esaminare il contenuto di una variabile di interfaccia e ottenere il valore concreto sottostante.

Conclusione

Andare non ha classi O oggetti nel senso classico; Invece, usa Strutture E interfacce, che offrono funzionalità comparabili in modo più semplice e leggero. Andare ha guadagnato popolarità tra gli sviluppatori che danno la priorità alla semplicità, alla leggibilità e alle prestazioni abbracciando una filosofia e una grammatica diverse. Anche se conosce Vai La metodologia potrebbe richiedere un po 'di tempo, le sue caratteristiche distintive e il design risultano in un codice più efficace e gestibile.