01-03 函数
03 函数
1 函数定义
1 普通的:func(关键字) 函数名(){
}
// 只有这个函数才是运行的主题函数
func main() {
f1()
}
// 在main外定义,不按顺序
func f1() {
fmt.Println("f1")
}
注意:
func main(){
},这是一个主体的函数,程序只运行这个函数体的代码
2 传参数
1 func 函数名(参数名 数据类型,参数名 数据类型){
函数中的代码
}
// 只有这个函数才是运行的主题函数
func main() {
f2("lynn", 18) // 调用时,按顺序和指定的数据类型传值,不用指定数据类型
}
// 注意定义时必须指定数据类型
func f2(name string, age int) {
fmt.Println(name, age)
}
2 可变长参数 : func 函数名(变量名... 数据类型){
}
注意:
可变长参数,接收的值是一个数组
func main() {
f4(1,2,34,5)
}
func f4(a... int) {//可变长参数只能传同种数据类型的数据
fmt.Println(a)
}
3 函数返回值
1 单返回值
func 函数名(参数名 数据类型)返回值的数据类型{
return 一个返回值
}
// 只有这个函数才是运行的主题函数
func main() {
var a string
a = f3("lynn")
fmt.Println(a)
}
func f3(age string)string{ // 指定返回数据的数据类型
return age
}
2 多返回值
func 函数名(参数名 数据类型)(第一个返回值的数据类型,第二个数据类型的返回值){
return 第一个值, 第二个值
}
注意:
调用函数接收返回值时,返回值有几个必须有几个值接收,并且要声明数据类型
// 只有这个函数才是运行的主题函数
func main() {
f3("lynn")
}
func f3(age string)(string, int){ // 指定返回数据的数据类型,括号中按顺序指定数据类型
return age,18
}
3 命名返回值
// 只有这个函数才是运行的主体函数
func main() {
age, name := f5(18) // 声明赋值
fmt.Println(age, name)
}
func f5(age int)(a int, b string){ // 提前声明返回值,可以直接在函数体中使用,不用声明,且可以直接return
a = age
b = "lynn"
return // 相当于return a, b
}
4 空白符(占位符)
多返回值时,不想接收的返回值用_接收
func main() {
age, _ := f5(18) // _表示不要的返回值,且不能打印
fmt.Println(age)
}
func f5(age int)(a int, b string){ // 提前声明返回值,可以直接在函数体中使用,不用声明,且可以直接return
a = age
b = "lynn"
return
}