package main
import "fmt"
/*
函数 是go里面主要的封装方法 注意:defer 是go语言中新增的 其他语言应该没有
作用是被这个defer标记的函数会延迟执行 并且如果有多个defer标记 最后表的defer
最先执行
*/
// (name(传入参数) string(传入类型)) string 返回类型
func one(name string, age int) string {
var name_str = fmt.Sprintf("姓名:%s,年龄:%d", name, age)
return name_str
}
// 函数接收可变参数
func two(a ...int) int { //...接收可变参数类型为切片
fmt.Printf("%T\n", a)
return 1
}
// 当可变参数和固定参数都存在时 可变参数要放到固定参数的后面
func trr(a int, b ...int) {
fmt.Printf("a:%d,b:%d\n", a, b)
}
// 函数多个返回值应该用()
func four(a int, b int, c int) (int, int, int) {
fmt.Println(a, b, c)
return c, b, a
}
// defer:延迟执行
func fuuod() {
defer fmt.Println("我用的函数1") //加上defer 会最后执行
defer fmt.Println("我用的函数2") //加上defer 会最后执行
defer fmt.Println("我用的函数3") //加上defer 会最后执行 如果存在多个defer最后一个defer会最先执行
fmt.Println("我是一个函数")
}
func main() {
result := one("小明", 12)
fmt.Println(result)
//two()
//trr(1, 2)
//four(1, 2, 3)
fuuod()
}
最后修改:2022 年 11 月 29 日 02 : 17 PM
© 允许规范转载