Heim >Backend-Entwicklung >Golang >Was sind unbestimmte Parameter in der Go-Sprache?
Unbestimmte Parameter bedeuten, dass die Anzahl der von der Funktion übergebenen Parameter eine unbestimmte Zahl ist; die Deklaration unbestimmter Parameter verwendet das Syntaxformat „param...type“. Eigenschaften unbestimmter Parameter: 1. Alle unbestimmten Parametertypen müssen gleich sein. 2. Der unbestimmte Parameter muss der letzte Parameter der Funktion sein. 3. Der unbestimmte Parameter entspricht einem Slice im Funktionskörper Slice ist auch für die Operation mit unbestimmten Parametern geeignet. 4. Slices können als Parameter an unbestimmte Parameter übergeben werden, und „…“ muss nach dem Slice-Namen hinzugefügt werden. 5. Die Arten von Funktionen, deren formale Parameter unbestimmte Parameter sind, sind unterschiedlich von denen von Funktionen, deren formale Parameter Slices sind.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Was sind unbestimmte Parameter?
Unbestimmte Parameter bedeuten, dass die Anzahl der von der Funktion übergebenen Parameter eine unbestimmte Zahl ist.
package main import ( "fmt" ) /* 不定参数函数 */ func Add(a int, args ...int) (result int) { result += a for _, arg := range args { result += arg } return } func main() { fmt.Println(Add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) }
Go-Funktion unterstützt eine unbegrenzte Anzahl formaler Parameter. Die Variablenparameterdeklaration verwendet das Syntaxformat von param...type
param ...type
的语法格式
不定参数有以下几个特点:
①所有的不定参数类型必须是相同的。
②不定参数必须是函数的最后一个参数。
③不定参数在函数体内相当于一个切片,对切片的操作同样适合对不定参数的操作。
④切片也可以作为参数传递给不定参数,切片名称后面要加上“...
③Der unbestimmte Parameter entspricht einem Slice im Funktionskörper, und die Operation am Slice eignet sich auch für die Operation am unbestimmten Parameter. ④Slices können auch als Parameter an unbestimmte Parameter übergeben werden, und „...
“ muss nach dem Slice-Namen hinzugefügt werden.
package main
import "fmt"
func Add(arr ...int) int {
var count int
arr1 := arr[1:]
for _, val := range arr1 {
count += val
}
return count
}
func main() {
slice := []int{1, 2, 3, 4, 5}
//array := [...]int{1, 2, 3, 4}
fmt.Println(Add(slice...))
//fmt.Println(Add(array...)) //cannot use array (variable of type [4]int) as parameter of type []int
}
⑤ Funktionen, deren formale Parameter unbestimmte Parameter sind, sind von einem anderen Typ als Funktionen, deren formale Parameter Slices sind.
package main
import "fmt"
func Add1(arr ...int) int {
return arr[0]
}
func Add2(arr []int) int {
return arr[0]
}
func main() {
fmt.Printf("%T\n", Add1)
fmt.Printf("%T\n", Add2)
}
func SetData(args ...int) (result int) { //不定参数的传递 return Add(1, args...) } func main() { fmt.Println(SetData(1, 2, 3))//输出7 array := []int{1, 2, 3, 4} fmt.Println(Add(1, array...))//输出11 }🎜🎜🎜Jede Art von unbestimmten Parametern🎜🎜🎜
/* 任意类型的不定参数,用interface{}表示 */ func MyPrintf(args ...interface{}) { for _, arg := range args { //迭代不定参数 switch arg.(type) { case int: fmt.Println(arg, "is int") case string: fmt.Println(arg, "is string") case float64: fmt.Println(arg, "is float64") case bool: fmt.Println(arg, " is bool") default: fmt.Println("未知的类型") } } } func main() { /*输出结果: 12 is int haha is string 12.5 is float64 false is bool -12.5 is float64 */ MyPrintf(12, "haha", 12.5, false, -12.5) }🎜[Verwandte Empfehlungen: 🎜Go Video. Tutorial 🎜, 🎜Programmierunterricht 🎜】🎜
Das obige ist der detaillierte Inhalt vonWas sind unbestimmte Parameter in der Go-Sprache?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!