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.

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 ...Type
indică 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.