Variadische Funktionen in Go ermöglichen die Übergabe einer variablen Anzahl von Argumenten an eine Funktion. Dies ist nützlich, wenn Sie nicht im Voraus wissen, wie viele Argumente Sie übergeben werden. Eine variadische Funktion in Golang akzeptiert mehrere Argumente desselben Typs und kann mit einer beliebigen Anzahl von Argumenten aufgerufen werden, auch mit keinem.

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())
}
Ergebnis:
Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0
Syntax:
func functionName(parameters ...Type) ReturnType {
// Code
}
In der obigen Syntax:
parameters ...Type
gibt an, dass die Funktion eine variable Anzahl von Argumenten vom Typ Type akzeptieren kann.
- Sie können auf Argumente in einer Funktion als Slice zugreifen.
So verwenden Sie unsichere Funktionen in Golang
Verwenden von variadischen Funktionen
Beim Definieren einer variadischen Funktion geben Sie die Argumenttypen gefolgt von Auslassungspunkten (...) an, wie im obigen Beispiel. Innerhalb der Funktion können diese Argumente als Slice betrachtet werden.
Aufrufen einer variadischen Funktion
Sie können eine variadische Funktion mit einer beliebigen Anzahl von Argumenten aufrufen, einschließlich Null. Die Funktion behandelt die Argumente als Slice.
Zum Beispiel:
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())
}
Ergebnis:
Sum of 1, 2, 3: 6
Sum of 4, 5: 9
Sum of no numbers: 0
Variadische Funktion mit unterschiedlichen Parametern
Sie können in einer Funktion auch variadische Parameter mit regulären Parametern kombinieren. Variadische Parameter müssen immer der letzte Parameter sein.
Zum Beispiel:
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:")
}
Ergebnis:
Sum of numbers:
Number: 1
Number: 2
Number: 3
Another sum:
Number: 4
Number: 5
No numbers sum:
Einschränkungen variadischer Funktionen
- Variadische Funktionen können nur einen variadischen Parameter haben und dieser muss der letzte Parameter sein.
- Sie können nicht mehrere variadische Parameter in einer einzelnen Funktionsdefinition haben.