Go 입문 자습보전 0011 - 귀속 함수, 함수 유형
1405 단어 Go 언어 시작
귀속 함수는 보통 같은 구조를 가지고 있다. 하나는 튀어나오는 조건과 하나는 귀속체이다.이른바 점프 조건이란 들어오는 매개 변수에 따라 귀속을 정지해야 하는지 아닌지를 판단하는 것이고 귀속체는 함수 자체가 하는 일부 처리이다.
//순환을 통해 1+2+3 실현...+100 func Test01 () int {i: = 1 sum: = 0 for i = 1; i < = 100; i++ {sum + = i}
return sum
}
//반복을 통해 1+2+3 구현...+100 func Test02 (num int) int {if num = = 1 {return 1}
return num + Test02(num-1) //
}
//반복을 통해 1+2+3 구현...+100 func Test03 (num int) int {if num = = 100 {return 100}
return num + Test03(num+1) //
}
func main() {
fmt.Println(Test01()) //5050
fmt.Println(Test02(100)) //5050
fmt.Println(Test03(1)) //5050
}
011.4 함수 유형은 Go 언어에서 함수도 데이터 유형이다. 우리는 type을 통해 그 유형을 정의할 수 있다. 그 유형은 같은 매개 변수와 같은 반환 값을 가진 모든 유형이다.
type FuncType func (int, int) int//함수 형식을 설명합니다. func 뒤에 함수 이름이 없습니다.
//함수 중 하나의 인수 유형은 함수 유형입니다. f FuncTypefuncCalc(a, b int, f FuncType)(result int) {result = f(a, b)//f()를 호출하여 작업return}을 수행합니다.
func Add(a, b int) int { return a + b }
func Minus(a, b int) int { return a - b }
func main () {//함수 호출, 세 번째 인자는 함수 이름입니다. 이 함수의 인자는 반환 값이FuncType 형식과result 일치해야 합니다: = Calc (1, Add) fmt.Println (result)//2
var f FuncType = Minus
fmt.Println("result = ", f(10, 2)) //result = 8
}