package main
import "fmt"
//func 函数名(参数列表)返回值{ // 函数体 //} //func run() { // fmt.Println("run") //} //func test(a int, b int) { // fmt.Printf("a=%d,b=%d",a,b) //} //func sum(args ...int) { // //不定参数 //} //func sum(a int,args ...int) { // //fmt.Println(args[0],args[1]) // //var sum = 0; // //for i := 0; i < len(args); i++ { // // sum = sum + args[i] // // fmt.Println(args[i]) // //} // //fmt.Println(sum) // for i,v := range args { // fmt.Println(i,v) // } //} //func test(a,b int) (c,d int){ // d = a // c = b // return //} //代码区 数据区 堆区 栈区 地地址---高地址 //代码区 计算机指令 //数据区 初始化数据区 未初始化数据区 常量区 //堆区 一个很大的空间在使用是开辟空间结束时释放 //栈区 存放函数信息 函数内部定义的变量 //func demo1(a,b int) { // fmt.Println(a+b) //} ////定义函数类型,为已经存在的函数起别名 ////type FUNCDEMO func(int,int) //var a int = 1 //func test1() { // fmt.Println(a) // a += 1 //} func main() { //函数名表示是一个地址,函数在代码区的地址 //fmt.Println(demo1) //fmt.Printf("%T\n",demo1) ////声明一个函数类型的变量 //var f func(int, int) //fmt.Println(f) //var a FUNCDEMO = demo1 //fmt.Println(a) //a(10,20) // 定义在函数内部的变量为局部变量 //var i int = 10 //for i := 0; i < 5; i++ { // fmt.Println(i) //} //fmt.Println(i) //a = 8 //test1() // //fmt.Println(a) //var num int //num = 9 //func() { // num ++ // fmt.Println(num) //}() ////函数调用 ////f() //fmt.Println(num) a := test02(10) fmt.Println(a) } func test02(num int) int { if num == 1 { return 1 } return num + test02(num-1) } func test01(a int) { if a == 1 { fmt.Println(a) return } test01(a-1) fmt.Println(a) }
|
请发表评论