Heim >Backend-Entwicklung >Golang >Was sind unbestimmte Parameter in der Go-Sprache?

Was sind unbestimmte Parameter in der Go-Sprache?

青灯夜游
青灯夜游Original
2023-01-17 15:33:552201Durchsuche

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.

Was sind unbestimmte Parameter in der Go-Sprache?

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...typeparam ...type的语法格式

不定参数有以下几个特点:

  • ①所有的不定参数类型必须是相同的。

  • ②不定参数必须是函数的最后一个参数。

  • ③不定参数在函数体内相当于一个切片,对切片的操作同样适合对不定参数的操作。

  • ④切片也可以作为参数传递给不定参数,切片名称后面要加上“...

    Unbestimmte Parameter haben die folgenden Eigenschaften:
  • ①Alle unbestimmten Parameter Die Typen müssen gleich sein.

②Der unbestimmte Parameter muss der letzte Parameter der Funktion sein.

Was sind unbestimmte Parameter in der Go-Sprache?

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

🎜🎜Übertragung unbestimmter Parameter🎜🎜🎜
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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn