1. 함수 사용하기
페이지 정보
작성자 관리자 댓글 0건 조회 3,369회 작성일 19-03-12 07:13본문
1. 함수 사용하기
func 함수명() {}
package main
import "fmt"
func hello() { // hello 함수 정의
fmt.Println("Hello, world!")
}
func main() {
hello()
}
Go 언어는 함수를 정의할 때 위치 제약이 없다.
다음과 같이 hello 함수가 main함수 보다 뒤에 있어도 컴파일 에러가 발생하지 않는다.
package main
import "fmt"
func main() {
hello()
}
func hello() { // hello 함수 정의
fmt.Println("Hello, world!")
}
1. 매개변수와 리턴값 사용하기
func 함수명(매개변수명 자료형)리턴값_자료형 {}
간단하게 두 정수를 더한 뒤 결과를 리턴하는 함수를 만들겠다.
package main
import "fmt"
func sum(a int, b int) int { // int형 매개변수 a, b 그리고 int 형 리턴값을 가지는 함수 정의
return a + b
}
func main() {
r := sum(1, 2)
fmt.Println(r) // 3
}
리턴값에 이름을 지정할 수도 있다.
func 함수명(매개변수명 자료형)(리턴값_변수명 자료형) {}
package main
import "fmt"
// ↓ 리턴 값 변수의 이름을 r로 지정
func sum(a int, b int) (r int) {
r = a + b // 리턴값 변수 r에 값 대입
return // 리턴값 변수를 사용할 때는 return 뒤에 변수를 지정하지 않음
}
func main() {
r := sum(1, 2)
fmt.Println(r)
}
2. 리턴값 여러개 사용하기
함수에서 값을 여러개 리턴할 수 있다.
func 함수명(매개변수명 자료형)(리턴값_자료형1, 리턴값_자료형2) {}
package main
import "fmt"
func SumAndDiff(a int, b int) (int, int) { // int형 리턴값이 두 개인 함수 정의
return a + b, a - b // 리턴할 값 또는 변수를 차례대로 나열. 합과 차를 동시에 리턴
}
func main() {
sum, diff := SumAndDiff(6, 2) // 변수 두 개에 리턴값 두 개를 대입
fmt.Println(sum, diff) // 8 4: 합과 차
}
첫번째 리턴값은 생략하고 두번째 리턴값부터 사용하고 싶다면 _(밑줄)를 사용한다.
package main
import "fmt"
func SumAndDiff(a int, b int) (int, int) {
return a + b, a - b // 리턴할 값 또는 변수를 차례대로 나열
}
func main() {
_, diff := SumAndDiff(6, 2) // 첫 번째 리턴값은 _으로 생략, 두 번째 리턴값만 사용
fmt.Println(diff) // 4: 차
}
3. 가변인자 사용하기
함수의 매개변수 개수가 정해져 있지 않고 유동적으로 변하는 형태를 가변인자라고 한다.
func 함수명(매개변수명 ...자료형) 리턴값_자료형 {}
가변인자를 활용해서 매개변수로 받은 모든 값을 더하는 함수를 작성해보겠다.
package main
import "fmt"
func sum(n ...int) int { // int형 가변인자를 받는 함수 정의
total := 0
for _, value := range n { // range로 가변인자의 모든 값을 꺼냄
total += value // 꺼낸 값을 모두 더함
}
return total
}
func main() {
r := sum(1, 2, 3, 4, 5)
fmt.Println(r) // 15
}
가변인자로 받은 변수는 슬라이스 타입이므로 range 키워드를 사용하여 값을 꺼내면 된다.
package main
import "fmt"
func sum(n ...int) int {
total := 0
for _, value := range n {
total += value
}
return total
}
func main() {
n := []int{1, 2, 3, 4, 5}
r := sum(n...) // ...를 사용하여 가변인자에
// 슬라이스를 바로 넘겨줌
fmt.Println(r) // 15
}
댓글목록
등록된 댓글이 없습니다.