programing tip

Golang은 가변 기능을 지원합니까?

itbloger 2020. 11. 28. 08:50
반응형

Golang은 가변 기능을 지원합니까?


어쨌든 Go에서 알려지지 않은 수의 변수에 대한 함수를 정의 할 수 있는지 궁금합니다.

이 같은

 func Add(num1... int) int {
    return args
  }

  func main() {
        fmt.Println("Hello, playground")
        fmt.Println(Add(1, 3, 4, 5,))
  }

여러 입력에 대해 추가 기능을 일반화하고 싶습니다.


내가 말할 수있는 것에서 거의 알 수 있지만 구문은 ...int. 사양 참조 :

함수와 호출이 주어지면

func Greeting(prefix string, who ...string)
Greeting("hello:", "Joe", "Anna", "Eileen")

Greeting 내 who에서 가치가 있습니다.[]string{"Joe", "Anna", "Eileen"}


가변 매개 변수를 사용하는 동안 함수 내부의 데이터 유형에 루프를 사용해야합니다.

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

func main() {
    fmt.Println("Hello, playground")
    fmt.Println(Add(1, 3, 4, 5,))
}

Golang은 매우 간단한 가변 함수 감소를 가지고 있습니다.

가변 함수는 여러 후행 인수로 호출 할 수 있습니다. 예를 들어, fmt.Println은 일반적인 가변 함수입니다.

다음은 임의의 수의 정수를 인수로 취하는 함수입니다.

package main

import (
    "fmt"
)

func sum(nums ...int) {
    fmt.Println(nums)
    for _, num := range nums {
        fmt.Print(num)
    }
}

func main() {
    sum(1, 2, 3, 4, 5, 6)
}

위 프로그램의 출력 :

[12 34 5 6]

12 34 5 6

참고URL : https://stackoverflow.com/questions/19238143/does-golang-support-variadic-function

반응형