>백엔드 개발 >Golang >golang 변수 매개변수

golang 변수 매개변수

WBOY
WBOY원래의
2023-05-16 16:22:38678검색

Golang의 무한 매개변수 함수는 이 함수가 다양한 수의 매개변수를 받아들일 수 있다는 것을 의미합니다. 함수를 정의할 때 세 개의 점 "..."을 사용하여 매개변수의 수가 고정되어 있지 않으며 이러한 매개변수가 하나의 조각으로 압축된다는 것을 나타낼 수 있습니다.

Golang에서는 함수의 매개변수 목록에 변수 매개변수가 하나만 있을 수 있으며, 일반적으로 매개변수 목록 끝에 배치됩니다.

예를 들어 다음은 임의 개수의 정수의 합을 계산하는 함수입니다.

func sum(nums ...int) int {
    total := 0
    for _, num := range nums {
        total += num
    }
    return total
}

함수 시그니처에서 세 개의 점 "..."은 부정 매개변수를 나타내는 데 사용되며 매개변수 이름은 "nums"입니다. 데이터 유형은 "int"이므로 "nums"는 실제로 정수 조각입니다.

이 함수를 호출할 때 매개변수 개수를 지정하지 않고 원하는 개수의 정수를 매개변수로 전달할 수 있습니다.

fmt.Println(sum(1, 2, 3))      // 输出 6
fmt.Println(sum(10, 20, 30, 40)) // 输出 100

무한 매개변수 함수는 매우 유연하며 다양한 유형과 개수의 매개변수를 처리할 수 있습니다. 다음은 두 개 또는 세 개의 부동 소수점 숫자의 평균을 계산하는 예입니다.

func avg(nums ...float64) float64 {
    sum := 0.0
    for _, num := range nums {
        sum += num
    }
    return sum / float64(len(nums))
}

fmt.Println(avg(1.0, 2.0))         // 输出 1.5
fmt.Println(avg(1.0, 2.0, 3.0))    // 输出 2.0

Go 언어에서는 변수 매개변수도 함수 호출 시 매개변수 전달 순서를 따라야 한다는 점에 유의해야 합니다. 예를 들어, 다음 예에서 매개변수가 반전되면 함수는 오류를 보고합니다.

func foo(num int, strs ...string) {
    fmt.Println(num)
    fmt.Println(strs)
}

foo("hello", "world", 1)  // 报错!第一个参数应该是整数类型

함수 내에서 for 루프를 사용하여 무한 매개변수를 반복하고 그 안의 각 요소를 슬라이스 작업처럼 처리할 수 있습니다. . 변수 매개변수를 처리한 후 len() 함수를 사용하여 변수 매개변수의 수를 얻을 수도 있습니다.

한마디로 Golang에서 가변 매개변수 기능은 프로그램의 유연성과 실용성을 크게 향상시킬 수 있으며, 불확실한 숫자와 유형의 매개변수를 처리하는 데 매우 편리하고 빠릅니다.

위 내용은 golang 변수 매개변수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:골랭 상속 방법다음 기사:골랭 상속 방법