Go에서 함수를 만드는 방법에 대해 살펴보겠습니다.
함수는 작성하기 위해 필요한 것들과 특징을 먼저 살펴보겠습니다.
・파라미터 타입 지정 필수
・반환값 타입 지정 필수
・반환값을 여러개 설정 가능
함수 작성
작성 방법을 예제를 통해 확인하겠습니다.
함수에 파라미터를 지정하는 방법입니다.
파라미터 예제
package main
import "fmt"
// 파라미터 없는 함수 작성
func sayHi() {
fmt.Println("hi!")
}
// 파라미터를 지정한 함수 작성
func sayName(name string) {
fmt.Println(name)
}
// 메인
func main() {
sayHi()
sayName("Jone")
}
결과
hi!
Jone
함수를 작성할 때에 파라미터를 지정하지 않고 만들 수 있습니다.
파라미터가 필요한 경우에는 함수 이름 뒤에 있는 괄호에 지정할 수 있습니다.
지정을 하는 경우에는 데이터 타입도 지정해줘야 합니다.
이번에는 반환값을 가진 함수를 만드는 방법을 보겠습니다.
함수 반환값
반환값 예제
package main
import "fmt"
// 반환값이 있는 함수 작성
func getMessage(name string) string {
msg := "hi! my name is " + name
return msg
}
// 함수에 반환값 변수 설정 함수
func getHelloMessage(name string) (msg string) {
msg = "Hello " + name
return
}
// 메인
func main() {
sayHi()
sayName("Jone")
fmt.Println(getMessage("Jim"))
fmt.Println(getHelloMessage("Golang"))
}
결과
hi! my name is Jim
Hello Golang
반환값이 필요한 경우에는 return을 사용합니다.
return을 사용한 경우에는 반환값 타입을 지정해줘야 합니다.
반환값은 return 뒤에 작성하며, 타입은 파라미터 뒤에 작성해줍니다.
또는 반환값 타입을 지정할 때에 반환하고 싶은 변수 명도 동시에 설정할 수 있습니다.
이러한 경우에는 return 뒤에 변수를 작성하지 않아도 됩니다.
반환값 여러개 작성
반환값을 여러개 설정하는 방법을 보겠습니다.
반환값 여러개 작성 방법
package main
import "fmt"
// 복수의 반환값 설정
func calc(a int, b int) (int, int) {
add = a + b
sub = a - b
return add, sub
}
func main() {
add, sub := calc(5, 2)
fmt.Println(add)
fmt.Println(sub)
}
결과
7
3
반환값을 여러개 지정한 경우에는 데이터 타입도 반환 개수만큼 작성해야 합니다.
함수를 호출하고 반환값을 저장할 변수도 여러개 준비해주면 됩니다.
여러개 반환값을 지정할 수 있기 때문에 변수 두 개의 값을 변경하고 싶은 경우 함수로 작성해주면 편리합니다.
변수값 변경하기 예제
package main
import "fmt"
// 복수의 반환값 설정
// 변수값 변경하기
func swap(a int, b int) (int, int) {
return b, a
}
func main() {
a := 3
b := 5
a, b = swap(a,b)
fmt.Println(a)
fmt.Println(b)
}
결과
5
3
변수 a와 b 값이 서로 바뀌어서 출력되었습니다.
댓글