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

+ Recent posts