반응형
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
반응형
'programing tip' 카테고리의 다른 글
ValueError : int ()에 대한 잘못된 리터럴 (0) | 2020.11.28 |
---|---|
arduino 환경에서 라이브러리를 어떻게 제거합니까? (0) | 2020.11.28 |
redux에서 AJAX 요청을 만드는 방법 (0) | 2020.11.28 |
왜 C ++ 옵티마이 저가 이러한 임시 변수에 문제가 있거나 타이트 루프에서`v []`를 피해야합니까? (0) | 2020.11.28 |
.NET 단위 테스트 패키지? (0) | 2020.11.28 |