무한 매개변수는 함수에 의해 전달된 매개변수의 수가 무한하다는 것을 의미합니다. 무한 매개변수 선언은 "param...type" 구문 형식을 사용합니다. 무기한 매개변수의 특징: 1. 모든 무기한 매개변수 유형은 동일해야 합니다. 2. 무기한 매개변수는 함수의 마지막 매개변수여야 합니다. 3. 무기한 매개변수는 함수 본문의 슬라이스와 동일하며, 슬라이스는 무한 매개변수 연산에도 적합합니다. 4. 슬라이스는 무한 매개변수에 매개변수로 전달될 수 있으며, 슬라이스 이름 뒤에 "..."를 추가해야 합니다. 5. 형식 매개변수가 무한 매개변수인 함수의 유형은 다릅니다. 형식 매개변수가 슬라이스인 함수의 함수와 다릅니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
무한 매개변수란 무엇인가요?
무한 매개변수는 함수에 의해 전달된 매개변수의 수가 무한하다는 것을 의미합니다.
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 함수는 무한한 수의 형식 매개변수를 지원합니다. 가변 매개변수 선언은 param...type
의 구문 형식을 사용합니다.param ...type
的语法格式
不定参数有以下几个特点:
①所有的不定参数类型必须是相同的。
②不定参数必须是函数的最后一个参数。
③不定参数在函数体内相当于一个切片,对切片的操作同样适合对不定参数的操作。
④切片也可以作为参数传递给不定参数,切片名称后面要加上“...
③부정 매개변수는 함수 본문의 슬라이스와 동일하며, 슬라이스에 대한 연산도 부정 매개변수에 대한 연산에 적합합니다. 4슬라이스를 부정 매개변수에 매개변수로 전달할 수도 있으며, 슬라이스 이름 뒤에 "...
"를 추가해야 합니다.
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
}
⑤ 형식 매개변수가 부정 매개변수인 함수는 형식 매개변수가 슬라이스인 함수와 유형이 다릅니다.
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 }🎜🎜🎜모든 유형의 무한 매개변수🎜🎜🎜
/* 任意类型的不定参数,用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) }🎜[관련 권장 사항: 🎜Go 비디오 튜토리얼🎜, 🎜프로그램 밍이 가르치는 🎜】🎜
위 내용은 Go 언어에서 무한 매개변수란 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!