Funcții volatile în Golang

Funcțiile variadice din Go vă permit să transmiteți un număr variabil de argumente unei funcții. Această caracteristică este utilă atunci când nu știi dinainte câte argumente vei trece. O funcție variadică Golang  acceptă mai multe argumente de același tip și poate fi apelată cu orice număr de argumente, inclusiv niciunul.

Funcții volatile în 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())
}

Rezultat:

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

Sintaxă:

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

În sintaxa de mai sus:

  • parameters ...Typeindică faptul că funcția poate accepta un număr variabil de argumente de tip Type.
  • Puteți accesa argumentele dintr-o funcție ca o felie.

Cum să utilizați funcțiile incerte în Golang

Utilizarea funcțiilor Variadice

Când definiți o funcție variadică, specificați tipul de argument urmat de o elipsă (...) ca în exemplul de mai sus. În interiorul funcției, aceste argumente pot fi gândite ca o felie.

Apelarea unei funcții variadice

Puteți apela o funcție variadică cu orice număr de argumente, inclusiv zero. Această funcție tratează argumentele ca pe o felie.

De exemplu:

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())
}

Rezultat:

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

Funcție variadică cu diferiți parametri

De asemenea, puteți combina parametrii variadici cu parametrii obișnuiți într-o funcție. Parametrii variadici trebuie să fie întotdeauna ultimul parametru.

De exemplu:

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:")
}

Rezultat:

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

Limitări ale funcțiilor variadice

  • Funcțiile variadice pot avea un singur parametru variadic și trebuie să fie ultimul parametru.
  • Nu puteți avea mai mulți parametri variadici într-o singură definiție a funcției.

Lasă un comentariu

Ar fi Europa atrasă într-un ipotetic război nuclear SUA-Israel-Iran? Regulile NATO explicate

Ar fi Europa atrasă într-un ipotetic război nuclear SUA-Israel-Iran? Regulile NATO explicate

Un ghid pentru articolele 4 și 5 ale NATO, regulile ONU de autoapărare și de ce consultarea nu înseamnă intrarea automată a Europei în război.

Ar putea Iranul să aibă deja arme nucleare? Cum să interpretăm dovezile

Ar putea Iranul să aibă deja arme nucleare? Cum să interpretăm dovezile

Evaluați afirmațiile despre Iran în șase etape, distingând îmbogățirea uraniului, dezvoltarea de arme și posesia verificată.

Autoritatea Nucleară a SUA și Israelului: Ce explică de fapt sursele publice

Autoritatea Nucleară a SUA și Israelului: Ce explică de fapt sursele publice

Înțelegerea autorității decizionale în domeniul nuclear în șase etape, inclusiv controlul civil al SUA și limitele informațiilor publice despre Israel.

Strâmtoarea Hormuz în 2026: Ce spun sursele oficiale despre perturbările transportului maritim

Strâmtoarea Hormuz în 2026: Ce spun sursele oficiale despre perturbările transportului maritim

Un ghid al dovezilor oficiale din 2026 privind perturbările transporturilor maritime din Hormuz, afirmațiile legate de Iran, incidentele confirmate și ce rămâne incert.

Un ipotetic atac nuclear americano-israelian asupra Iranului ar provoca un al Treilea Război Mondial?

Un ipotetic atac nuclear americano-israelian asupra Iranului ar provoca un al Treilea Război Mondial?

Un ghid bazat pe surse privind riscurile de escaladare nucleară, regulile Cartei ONU și articolul 5 din NATO într-un scenariu strict ipotetic cu Iranul.

Cum să te pregătești pentru o ipotetică pană de curent legată de EMP: 5 pași pentru civili

Cum să te pregătești pentru o ipotetică pană de curent legată de EMP: 5 pași pentru civili

Urmați cinci pași pentru a vă pregăti pentru o întrerupere a energiei; scenariile nucleare și cele EMP sunt ipotetice, iar instrucțiunile oficiale privind adăpostul sunt prioritare.

Cum să evaluezi perturbările cibernetice fără a presupune că a fost vorba de Al Treilea Război Mondial: Un ghid în 5 pași

Cum să evaluezi perturbările cibernetice fără a presupune că a fost vorba de Al Treilea Război Mondial: Un ghid în 5 pași

Folosește 5 pași defensivi pentru a verifica o întrerupere cibernetică, a proteja conturile gospodăriei și a evita confundarea unei întreruperi cu un război.

Iarnă nucleară: Cum să evaluăm efectele climatice globale ale unui ipotetic atac al Iranului

Folosește acești 5 pași pentru a evalua efectele climatice ale unui ipotetic atac iranian, compară ipotezele modelului și evită predicțiile nefondate.

Cât timp ar putea dura până și-ar reveni Pământul după un ipotetic război nuclear?

Cât timp ar putea dura până și-ar reveni Pământul după un ipotetic război nuclear?

Explorează șase pași pentru citirea cercetărilor despre climă, alimente și refacerea ecosistemelor după un conflict nuclear ipotetic.

Listă de verificare pentru pregătirea pentru căderi nucleare: provizii esențiale și pași pentru adăpost

Listă de verificare pentru pregătirea pentru căderi nucleare: provizii esențiale și pași pentru adăpost

Construiți un kit practic de pregătire pentru căderi radioactive în șase pași, cu alimente și apă sigilate, un radio, provizii medicale și îndrumări pentru adăposturi.