go基础知识二
1 函数
/*
函数
*/
package main
import "fmt"
func main() {
//1 函数调用
//test()
//2 函数调用
//先定义
//a:=10
//test(a)
// 或者直接传值
//test(10)
//3 函数调用
//test(10,11)
//test(b=10,a=11) //没有关键字参数
//4 函数调用,接收返回值
//var a int
//a=test(10,11)
//或者这种方式比较常用
//a:=test(100,11)
//fmt.Println(a)
//5 函数调用(有几个返回值,必须用几个值来接收)
//a,b:=test(10,11)
//第二个参数不接收了(跟python中_不一样,python中_就是一个变量)
//a,_:=test(10,11)
////fmt.Println(a,b)
//fmt.Println(a)
////fmt.Println(_)
//6 可变长参数
//fmt.Println(1,"ddd",3.14,4,4,5,6,7,8)
//test(1,2,3,4,4,56,7,7,8,9,9,0)
//7 匿名函数(定义在函数内部,没有名字)
//放在函数内部,有两种处理方案
//1 让它执行
//2 当参数返回
//否则报错
//func (){
// fmt.Println("我是匿名函数")
//}()
//8 函数是一等公民
//test()() 没问题
//var a func()
//a=test()
//a()
//a:=test()
//a()
// 9 闭包函数调用
//a:=test(10)
//fmt.Println(a)
//a()
//10 闭包函数高级
//test(99)(88,77)
//a:=test(99)
//a(88,77)
}
//定义函数
//func关键字 函数名(参数1 类型,参数2 类型){函数体的内容}
//1 定义一个无参数,无返回值的普通函数
//func test() {
// fmt.Println("我是test")
//}
//2 带参数,无返回值
//func test(b int) {
// fmt.Println(b)
//
//}
//3 带多个参数,无返回值(没有默认参数和关键字参数)
//func test(a int,b int) {
//如果两个参数都是同一个类型,就可以简略写