728x170
안녕하세요?
GoLang(고랭) 공부에 도움이 되고자 가변인자 관련 좋은 예제 소개할려고 합니다.
많은 도움이 됐으면 합니다.
1. 함수 파라미터에 가변인자 쓰는 예제
package main
import "fmt"
func main() {
fmt.Println(calculation("Rectangle", 20, 30))
fmt.Println(calculation("Square", 20))
}
func calculation(str string, y ...int) int {
area := 1
for _, val := range y {
if str == "Rectangle" {
area *= val
} else if str == "Square" {
area = val * val
}
}
return area
}
결과는 아래와 같습니다.
C:\golang\example>go run test1.go
600
400
C:\golang\example>
2. 가변인자에 다른 타입의 인자 전달하기
다음 예제에서 함수 시그니처는 slice 유형의 임의 개수의 인수를 허용합니다.
package main
import (
"fmt"
"reflect"
)
func main() {
variadicExample(1, "red", true, 10.5, []string{"foo", "bar", "baz"},
map[string]int{"apple": 23, "tomato": 13})
}
func variadicExample(i ...interface{}) {
for _, v := range i {
fmt.Println(v, "--", reflect.ValueOf(v).Kind())
}
}
variadicExample 함수의 가변인자로 slice 타입을 전달했습니다.
실행 결과는 다음과 같습니다.
C:\golang\example>go run test3.go
1 -- int
red -- string
true -- bool
10.5 -- float64
[foo bar baz] -- slice
map[apple:23 tomato:13] -- map
C:\golang\example>
3. 가변인자에서 한개의 인자 선택하기
아래 예제에서는 variadicExample() 함수에 전달 된 첫 번째 인수 값 s[0]과 네 번째 인수 값 s[3]을 인쇄합니다.
package main
import "fmt"
func main() {
variadicExample("red", "blue", "green", "yellow")
}
func variadicExample(s ...string) {
fmt.Println(s[0])
fmt.Println(s[3])
}
실행 결과는 아래와 같습니다.
C:\golang\example>go run test1.go
red
yellow
C:\golang\example>
그리드형
'코딩 > GoLang' 카테고리의 다른 글
GoLang - URL에서 이미지 다운로드 하기 (0) | 2021.02.07 |
---|---|
GoLang 배열 및 배열의 값 복사, 참조 복사 (0) | 2021.02.03 |
GoLang 클로저 함수 (0) | 2021.01.28 |
GoLang 익명 함수(Anonymous Function) (0) | 2021.01.28 |
GoLang의 Higher Order Function (0) | 2021.01.28 |