go 언어에서 함수 리턴 타입을 적을 때 ()을 사용할 때 튜플을 표현하지 않는다. 그저 묶음 표현일 뿐이다.
스칼라에 익숙한 개발자라면 놓칠 수 있는 내용인데,.. 사실 go에는 튜플이 없다...
package main
import "fmt"
func main() {
fmt.Println(add(1,2))
x, y := add(1,2)
fmt.Println(x, y)
fmt.Println(minus(2,1))
}
func add(x int, y int) (int, int) {
return x + y, x - y
}
func minus(x int, y int) (int) {
return x - y
}
결과는 다음과 같다.
3 -1
3 -1
1
함수의 매개변수를 정의할 때 (x int, y int)를 (x, y int)로 바꿔 사용할 수도 있다.
func add(x, y int) (int, int) {
return x + y, x - y
}
func minus(x, y int) (int) {
return x - y
}
함수의 리턴 타입을 정의할 때 변수명을 지정할 수 있다. 함수 내부에서 바인딩되게 하고 리턴할 때 값을 특별히 지정하지 않아도 된다.
package main
import "fmt"
func main() {
fmt.Println(split(1))
}
func split(x int) (y, z int) {
y = x + 2
z = x + 10
return
}
결과는 다음과 같다.
3 11
'go lang' 카테고리의 다른 글
[golang] 타입 확인하는 방법 - reflect.TypeOf (0) | 2017.08.29 |
---|---|
[golang] go 언어는 not immutable 언어이다. (string 제외) (0) | 2017.08.29 |
[go] 멀티라인 (다중 라인) (0) | 2017.08.29 |
[golang] Go 공부 시작 링크 (0) | 2017.08.29 |
go 1.5 발표 (0) | 2015.06.03 |