Funzioni volatili in Golang

Le funzioni variadiche in Go consentono di passare un numero variabile di argomenti a una funzione. Questa funzionalità è utile quando non si sa in anticipo quanti argomenti verranno passati. Una funzione variadica di Golang  accetta più argomenti dello stesso tipo e può essere chiamata con un numero qualsiasi di argomenti, anche nessuno.

Funzioni volatili in Golang

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Risultato:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Sintassi:

func functionName(parameters ...Type) ReturnType {
    // Code
}

Nella sintassi sopra:

  • parameters ...Typeindica che la funzione può accettare un numero variabile di argomenti di tipo Type.
  • È possibile accedere agli argomenti di una funzione come se fossero una slice.

Come utilizzare le funzioni incerte in Golang

Utilizzo delle funzioni Variadiche

Quando si definisce una funzione variadica, si specifica il tipo di argomento seguito da puntini di sospensione (...), come nell'esempio precedente. All'interno della funzione, questi argomenti possono essere considerati come una porzione.

Chiamata di una funzione variadica

È possibile richiamare una funzione variadica con un numero qualsiasi di argomenti, incluso zero. Questa funzione tratta gli argomenti come una fetta.

Per esempio:

package main
import "fmt"

func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

func main() {
    fmt.Println("Sum of 1, 2, 3:", sum(1, 2, 3))
    fmt.Println("Sum of 4, 5:", sum(4, 5))
    fmt.Println("Sum of no numbers:", sum())
}

Risultato:

Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0

Funzione variadica con parametri diversi

È anche possibile combinare parametri variadici con parametri regolari in una funzione. I parametri variadici devono essere sempre l'ultimo parametro.

Per esempio:

package main
import "fmt"

// Hàm Variadic tính tổng
func sum(nums ...int) int {
    total := 0
    for _, n := range nums {
        total += n
    }
    return total
}

// Hàm với tham số thông thường và variadic 
func greet(prefix string, nums ...int) {
    fmt.Println(prefix)
    for _, n := range nums {
        fmt.Println("Number:", n)
    }
}
func main() {
    greet("Sum of numbers:", 1, 2, 3)
    greet("Another sum:", 4, 5)
    greet("No numbers sum:")
}

Risultato:

Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:

Limitazioni delle funzioni variadiche

  • Le funzioni variadiche possono avere un solo parametro variadico e questo deve essere l'ultimo parametro.
  • Non è possibile avere più parametri variadici in una singola definizione di funzione.
Sign up and earn $1000 a day ⋙

Leave a Comment

Differenza tra TV normale e Smart TV

Differenza tra TV normale e Smart TV

Le smart TV hanno davvero preso d'assalto il mondo. Grazie alle sue numerose funzionalità e alla connettività Internet, la tecnologia ha cambiato il nostro modo di guardare la TV.

Perché il congelatore non ha la luce mentre il frigorifero sì?

Perché il congelatore non ha la luce mentre il frigorifero sì?

I frigoriferi sono elettrodomestici comuni nelle case. I frigoriferi hanno solitamente 2 scomparti: lo scomparto freddo è spazioso e ha una luce che si accende automaticamente ogni volta che l'utente lo apre, mentre lo scomparto congelatore è stretto e non ha luce.

2 modi per risolvere la congestione della rete che rallenta il Wi-Fi

2 modi per risolvere la congestione della rete che rallenta il Wi-Fi

Oltre ai router, alla larghezza di banda e alle interferenze, le reti Wi-Fi sono influenzate da molti fattori, ma esistono alcuni modi intelligenti per potenziare la propria rete.

Come eseguire il downgrade da iOS 17 a iOS 16 senza perdere dati utilizzando Tenorshare Reiboot

Come eseguire il downgrade da iOS 17 a iOS 16 senza perdere dati utilizzando Tenorshare Reiboot

Se vuoi tornare alla versione stabile di iOS 16 sul tuo telefono, ecco la guida di base per disinstallare iOS 17 ed effettuare il downgrade da iOS 17 a 16.

Cosa succede al corpo se mangi yogurt ogni giorno?

Cosa succede al corpo se mangi yogurt ogni giorno?

Lo yogurt è un alimento meraviglioso. Fa bene mangiare yogurt tutti i giorni? Se mangiassi yogurt ogni giorno, come cambierebbe il tuo corpo? Scopriamolo insieme!

Quale tipo di riso è migliore per la salute?

Quale tipo di riso è migliore per la salute?

In questo articolo vengono illustrati i tipi di riso più nutrienti e come sfruttare al massimo i benefici per la salute offerti dal tipo di riso scelto.

Come svegliarsi puntuali la mattina

Come svegliarsi puntuali la mattina

Tra le misure che possono aiutarti a dormire meglio e a svegliarti puntuale al mattino c'è quella di stabilire un orario per dormire e una routine per andare a dormire, cambiare la sveglia e modificare la tua dieta.

Suggerimenti per giocare a Rent Please! Simulazione del proprietario di casa per principianti

Suggerimenti per giocare a Rent Please! Simulazione del proprietario di casa per principianti

Affitto per favore! Landlord Sim è un gioco di simulazione per dispositivi mobili, disponibile per iOS e Android. Giocherai nei panni del proprietario di un complesso di appartamenti e inizierai ad affittare un appartamento con l'obiettivo di migliorarne gli interni e prepararli per gli inquilini.

Ultimi codici di difesa della torre del bagno e come inserirli

Ultimi codici di difesa della torre del bagno e come inserirli

Ottieni il codice del gioco Roblox Bathroom Tower Defense e riscattalo per ottenere fantastiche ricompense. Ti aiuteranno a potenziare o sbloccare torri con danni maggiori.

Struttura, simboli e principi di funzionamento dei trasformatori

Struttura, simboli e principi di funzionamento dei trasformatori

Impariamo a conoscere la struttura, i simboli e i principi di funzionamento dei trasformatori nel modo più accurato.

4 modi in cui lintelligenza artificiale sta migliorando le smart TV

4 modi in cui lintelligenza artificiale sta migliorando le smart TV

Dalla migliore qualità dell'immagine e del suono al controllo vocale e molto altro, queste funzionalità basate sull'intelligenza artificiale stanno rendendo le smart TV molto migliori!

Perché ChatGPT è migliore di DeepSeek

Perché ChatGPT è migliore di DeepSeek

Inizialmente le aspettative per DeepSeek erano alte. In quanto chatbot basato sull'intelligenza artificiale, pubblicizzato come un forte concorrente di ChatGPT, promette funzionalità ed esperienze di chat intelligenti.

Scopri Fireflies.ai: la segretaria AI gratuita che ti fa risparmiare ore di lavoro

Scopri Fireflies.ai: la segretaria AI gratuita che ti fa risparmiare ore di lavoro

È facile trascurare dettagli importanti quando si prendono appunti di altre cose essenziali, e cercare di prendere appunti mentre si chiacchiera può distrarre. Fireflies.ai è la soluzione.

Come allevare lAxolotl in Minecraft, addomesticare la Salamandra in Minecraft

Come allevare lAxolotl in Minecraft, addomesticare la Salamandra in Minecraft

Gli Axolot di Minecraft saranno degli ottimi aiutanti per i giocatori che operano sott'acqua, se sapranno come usarli.

A Quiet Place: The Road Ahead Configurazione del gioco per PC

A Quiet Place: The Road Ahead Configurazione del gioco per PC

La configurazione di A Quiet Place: The Road Ahead ha ricevuto recensioni piuttosto positive, quindi è opportuno valutarla attentamente prima di decidere di scaricarla.