728x90
함수는 코드를 재사용하기 위해서 사용하는 것이다.
굳이 예를... 들 필요가 있을까 한다.
바로 함수에 대해서 들어가 보도록 하자.
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func sub(x, y int) int {
return x - y
}
func main() {
a := 5
b := 3
fmt.Println(add(a, b))
fmt.Println(sub(a, b))
}
함수를 선언하는 방법은 여러가지 방식이 있다.
일단 가장 스탠다드한 방식부터 보자
func add(x int, y int) int {
return x + y
}
이 함수에 대해서 잘보면 매개변수 2개와 반환타입 한개가 보인다.
매개변수는 각각 int형이고 반환타입 또한 int형이다.
func sub(x, y int) int {
return x - y
}
만약 매개변수가 모두 동일하다면 맨끝에 애 한명만 적어도 된다.
package main
import "fmt"
func swap(x, y int) (int, int) {
return y, x
}
func main() {
a := 5
b := 3
fmt.Println(a, b)
a, b = swap(a, b)
fmt.Println(a, b)
}
만약 반환타입이 두개라면 위처럼 하면된다.
package main
import "fmt"
func split(num int) (up, down int) {
up = num / 10
down = num % 10
return
}
func main() {
num := 17
up, down := split(num)
fmt.Println(up, down)
}
Go에서는 특이한게 하나 더 있는데 이는 named result이다.
바로 마지막에 반환형에 이름을 적는것이다.
그러면 굳이 return에 적지 않더라도 자동으로 return이 되게 된다.
'Programming > Go' 카테고리의 다른 글
[Go-12]struct와 포인터, 그리고 초기화 (0) | 2018.09.03 |
---|---|
[Go-11]struct와 객체 (0) | 2018.09.02 |
[Go-09]맵(Map) (0) | 2018.08.31 |
[Go-08]배열(Array)과 슬라이스(slice) (0) | 2018.08.31 |
[Go-07]반복문 (0) | 2018.08.31 |