0Pricing
Go Academy · Lezione

Basi e firme delle funzioni

Parametri, tipi restituiti e convenzioni di chiamata

Basi e firme delle funzioni è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.

Definire una funzione

In Go, le funzioni vengono definite con la parola chiave func:

func greet(name string) string {
    return "Hello, " + name
}

Parametri e argomenti

I parametri sono tipizzati ed elencati come coppie name type. Più parametri dello stesso tipo possono condividere l'annotazione del tipo:

func add(x, y int) int {
    return x + y
}

func rect(w, h float64) float64 {
    return w * h
}

Funzioni senza valori restituiti

Le funzioni che non restituiscono un valore omettono semplicemente il tipo restituito. Il ritorno avviene implicitamente quando l'esecuzione raggiunge la fine:

func printBanner(title string) {
    fmt.Println("=====", title, "======")
}

Chiamare le funzioni

Chiami una funzione utilizzando il nome, le parentesi e gli argomenti corrispondenti:

result := add(3, 4)        // 7
fmt.Println(greet("Go"))   // Hello, Go
printBanner("Welcome")

Funzioni come valori di prima classe

In Go le funzioni sono valori di prima classe: possono essere assegnate a variabili e passate come argomenti:

apply := func(n int, f func(int) int) int {
    return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10

Tipi funzione

Può definire tipi funzione con nome per ottenere firme più chiare:

type Transform func(int) int

func applyAll(n int, fns []Transform) int {
    for _, f := range fns {
        n = f(n)
    }
    return n
}

Funzioni ricorsive

Go supporta la ricorsione. Presti attenzione alla profondità dello stack: gli stack delle goroutine di Go crescono dinamicamente, ma una ricorsione senza limite causa comunque un overflow dello stack:

func factorial(n int) int {
    if n <= 1 {
        return 1
    }
    return n * factorial(n-1)
}

Convenzioni per i nomi delle funzioni

Convenzioni di denominazione delle funzioni in Go:

  • Utilizzi MixedCaps per le funzioni esportate o mixedCaps per quelle non esportate
  • Scelga nomi brevi orientati all'azione: New, Get, Parse, Write
  • Eviti GetX per i semplici getter: utilizzi direttamente X
  • Per i predicati booleani utilizzi: IsValid, HasPrefix

Funzione init()

Una funzione speciale init() viene eseguita automaticamente quando il package viene caricato, prima di main():

  • Non accetta argomenti e non restituisce nulla
  • Un package può avere più funzioni init()
  • La utilizzi per configurazioni eseguite una sola volta, ad esempio per registrare driver

Funzione e metodo a confronto

Una funzione non è associata ad alcun tipo. Un metodo ha un receiver, che verrà illustrato in Structs & Methods. Entrambi utilizzano la parola chiave func:

// Function
func max(a, b int) int { ... }

// Method
func (c Counter) Value() int { ... }

Verifica rapida

In Go, una funzione può restituire più valori?

Riepilogo: fondamenti delle funzioni

Le funzioni di Go sono espressive e flessibili:

  • func name(params) returnType { }
  • I parametri dello stesso tipo possono condividere l'annotazione del tipo
  • Le funzioni sono valori di prima classe
  • Definisca tipi funzione per riutilizzare le firme
  • La ricorsione è supportata; init() viene eseguita al caricamento del package

Successivo: valori restituiti multipli in dettaglio.

Domande Frequenti

La lezione «Basi e firme delle funzioni» è gratuita?

Sì — il testo completo di «Basi e firme delle funzioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.

Cosa imparerò in «Basi e firme delle funzioni»?

Parametri, tipi restituiti e convenzioni di chiamata Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Go Academy?

Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Basi e firme delle funzioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Go Academy?

Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Basi e firme delle funzioni
  2. Più valori restituiti
  3. Funzioni variadiche
  4. defer, funzioni anonime e closure
← Torna a Go Academy