go笔记02

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 ",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)
}
原文地址:https://www.cnblogs.com/simadongyang/p/14383855.html