go / beginner
Snippet
Variadische Funktionen für flexible Argumente
Variadische Funktionen akzeptieren null oder mehr Argumente mit der `...T` Syntax. Innerhalb der Funktion wird die Variable ein Slice. Sie können auch erforderliche Parameter vor dem variadischen Teil haben. Dieses Muster ist nützlich für flexible APIs.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package mainimport "fmt"func sum(numbers ...int) int {total := 0for _, n := range numbers {total += n}return total}func printNames(first string, others ...string) {fmt.Printf("First: %s\n", first)for _, name := range others {fmt.Printf("Also: %s\n", name)}}func main() {fmt.Println("Total:", sum(1, 2, 3, 4, 5))fmt.Println("Single:", sum(42))fmt.Println("Empty:", sum())printNames("Alice", "Bob", "Charlie")}
Erklärung
1
func sum(numbers ...int) int
numbers wird zu []int mit allen übergebenen Werten
2
for _, n := range numbers
Iteriere über das Slice, das durch variadisch erstellt wurde
3
first string, others ...string
Pflichtparameter vor variadisch, others ist []string
4
sum(1, 2, 3, 4, 5)
Aufruf mit 5 Argumenten
5
sum()
Aufruf ohne Argumente, numbers ist leeres Slice