Metodi in Golang

I metodi in Golang  sono come le funzioni, ma con una differenza sostanziale: hanno un argomento receiver , che consente l'accesso alle proprietà del receiver . Il ricevitore può essere di tipo struct o non-struct, ma entrambi devono trovarsi nello stesso pacchetto. Non è possibile creare metodi per i tipi definiti in altri pacchetti, inclusi i tipi incorporati come int o string ; In caso contrario, il compilatore segnalerà un errore.

Metodi in Golang

Per esempio:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

Risultato:

Name: a
Age: 25

Sintassi

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

Ricevitore: è possibile accedervi utilizzando questo metodo.

Metodo con ricevitore di tipo struct

In Go è possibile definire un metodo in cui il ricevitore è di tipo struct. Il ricevitore è accessibile all'interno del metodo. L'esempio precedente illustra questo approccio con un Receiver di tipo struct.

Il metodo con Receiver non è di tipo struct

Go consente anche ai metodi di avere ricevitori non-struct, a condizione che il tipo di ricevitore e la definizione del metodo siano nello stesso pacchetto. Non è possibile definire un metodo con un tipo di ricevitore di un altro pacchetto (ad esempio int, string).

Per esempio:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

Risultato:

Square of 4 is 16

Metodo con puntatore del ricevitore

In Go, i metodi possono avere ricevitori di puntatori. Ciò consente che le modifiche apportate al metodo vengano riflesse nel chiamante, cosa che non è possibile con i ricevitori di valori.

Sintassi:

func (p *Type) method_name(...Type) Type {    // Code}

Per esempio:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

Risultato:

Before: a
After: b

Il metodo accetta sia il puntatore che il valore

A differenza delle funzioni, i metodi Go possono accettare sia ricevitori di valori che di puntatori. È possibile passare puntatori o valori e il metodo li gestirà di conseguenza.

Per esempio:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

Risultato:

After pointer method: b
Name: b

Differenza tra metodo e funzione

Metodo Mascella
Contiene un ricevitore Non contiene il ricevitore
È possibile definire metodi con lo stesso nome ma tipi diversi. Non sono consentite funzioni con lo stesso nome ma tipi diversi.
Non può essere usato come superlativo Possono essere usati come oggetti superordinati
Sign up and earn $1000 a day ⋙

Leave a Comment

8 principali svantaggi degli smartphone con schermo pieghevole che non ti aspettavi

8 principali svantaggi degli smartphone con schermo pieghevole che non ti aspettavi

Non si può negare che i telefoni pieghevoli siano davvero fantastici. Ma dopo un po' di utilizzo, questo dispositivo inizia a presentare alcune stranezze. Ecco 5 svantaggi principali dei telefoni con schermo pieghevole che non ti aspetteresti!

Adobe porta la tecnologia di creazione video basata sullintelligenza artificiale su Premiere Pro

Adobe porta la tecnologia di creazione video basata sullintelligenza artificiale su Premiere Pro

Adobe ha reso accessibile al grande pubblico la tecnologia di creazione video basata sull'intelligenza artificiale in un modo del tutto nuovo, anche se non ha ancora creato un film completo utilizzando questa tecnologia.

Ultimi codici di Genshin Impact di aprile 2025

Ultimi codici di Genshin Impact di aprile 2025

Il codice Genshin Impact 5.5 ti aiuta a ottenere Pietre Primordiali, Minerali Magici, esperienza e molte altre ricompense.

Come trasformare il tuo iPad in un display Mac aggiuntivo

Come trasformare il tuo iPad in un display Mac aggiuntivo

macOS Catalina e iPadOS includono il supporto per una nuova funzionalità chiamata Sidecar, progettata per consentirti di usare il tuo iPad come display secondario per il tuo Mac.

Sfondo 1280, bellissimo sfondo del telefono Nokia 1280

Sfondo 1280, bellissimo sfondo del telefono Nokia 1280

Questo è un set di sfondi per Nokia 1280. Se hai mai inviato un messaggio per ottenere sfondi per 1280, sfondi per telefoni con mattoncini, prova a dare un'occhiata a questi sfondi.

Laereo spaziale ipersonico raggiunge la velocità di 11.115 km/h

Laereo spaziale ipersonico raggiunge la velocità di 11.115 km/h

Venus Aerospace ha rivelato le prime immagini del suo nuovo aereo ipersonico chiamato Stargazer, che può raggiungere una velocità massima di 11.115 km/h, pari a Mach 9.

Mangiare banane a colazione aiuta a ridurre il gonfiore

Mangiare banane a colazione aiuta a ridurre il gonfiore

Il gonfiore può capitare a chiunque. La buona notizia è che la colazione è il momento ideale per aggiungere al pasto alcuni ingredienti che aiutano a ridurre il gonfiore. L'ingrediente in questione è la banana.

OpenAI annuncia un importante aggiornamento per la generazione di immagini AI in ChatGPT

OpenAI annuncia un importante aggiornamento per la generazione di immagini AI in ChatGPT

OpenAI ha appena introdotto ufficialmente un notevole aggiornamento alla capacità di generazione di immagini AI in ChatGPT, un importante passo avanti rispetto all'utilizzo di un modello di generazione di immagini separato come il precedente DALL-E.

Deepseek rilascia il modello di linguaggio gratuito v3 che funziona bene sulle configurazioni hardware comuni

Deepseek rilascia il modello di linguaggio gratuito v3 che funziona bene sulle configurazioni hardware comuni

La startup cinese di intelligenza artificiale DeepSeek ha appena rilasciato ufficialmente il suo ultimo modello linguistico di grandi dimensioni (LLM), DeepSeek-V3-0324.

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Motivi per abbandonare Gboard e passare alla tastiera Samsung

Gboard è da tempo la tastiera preferita sui telefoni Android. Tuttavia, di recente molte persone sono passate alla tastiera Samsung e non se ne sono più pentite.

Dolci e romantici auguri di fine settimana per gli innamorati

Dolci e romantici auguri di fine settimana per gli innamorati

Invia dolci e romantici auguri di buon fine settimana alla tua dolce metà. Sebbene siano solo parole o messaggi, saranno doni spirituali significativi, che contribuiranno a rafforzare la vostra relazione.

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

La serie TV di Harry Potter ha bisogno dei seguenti elementi per avere successo

Il remake di Harry Potter della HBO dovrebbe debuttare nel 2026. Ecco cosa rende la serie TV di Harry Potter un successo.

Immagini mozzafiato della superluna da tutto il mondo

Immagini mozzafiato della superluna da tutto il mondo

Non è raro trovare su Internet delle belle foto della luna. L'articolo riassumerà per voi le più belle immagini della luna del mondo.

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Gli utenti AMD Ryzen dovrebbero installare questo aggiornamento del BIOS per un aumento gratuito delle prestazioni

Ora AMD ha risposto ai problemi della sua linea di CPU di punta dalle prestazioni inferiori alle aspettative con un nuovo aggiornamento che potrebbe garantire qualche frame al secondo in più.

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Il valore di X scende da 44 miliardi di dollari a meno di 10 miliardi di dollari

Nell'ottobre 2022, Elon Musk ha speso 44 miliardi di dollari per acquisire X, ma ad oggi il valore della piattaforma è sceso del 78,6%, attestandosi a circa 9,4 miliardi di dollari.