Go语言流程控制05--defer延时执行
package main import "fmt" func xingzuoZhensuo() { var birthday string fmt.Println("请输入您的生日,例如0823") fmt.Scan(&birthday) if birthday >= "0823" && birthday <= "0922" { fmt.Println("阁下真乃神人也") } else if birthday >= "0923" && birthday <= "1022" { fmt.Println("阁下是天秤座") } else if birthday >= "1023" && birthday <= "1122" { fmt.Println("阁下是天蝎座") } else if birthday >= "1123" && birthday <= "1222" { fmt.Println("阁下是射手座") } else if (birthday >= "1223" && birthday <= "1231") || (birthday >= "0101" && birthday <= "0122") { fmt.Println("阁下是摩羯座") } else if birthday >= "0123" && birthday <= "0222" { fmt.Println("阁下是水瓶座") } else if (birthday >= "0223" && birthday <= "0229") || (birthday >= "0301" && birthday <= "0322") { fmt.Println("阁下是双鱼座") } else if birthday >= "0323" && birthday <= "0422" { fmt.Println("阁下是白羊座") } else if birthday >= "0423" && birthday <= "0522" { fmt.Println("阁下是金牛座") } else if birthday >= "0523" && birthday <= "0622" { fmt.Println("阁下是双子座") } else if birthday >= "0623" && birthday <= "0722" { fmt.Println("阁下是巨蟹座") } else if birthday >= "0723" && birthday <= "0822" { fmt.Println("阁下是狮子座") } else { fmt.Println("阁下就是传说中的蛇夫座鸭!") } } func main071() { fmt.Println("亲爱的患者,欢迎来到我院!") //挂起一个延时任务(在当前函数返回(结束)前执行) defer fmt.Println("同志再见,我院永远欢迎你!") xingzuoZhensuo() fmt.Println("事务A") fmt.Println("事务B") fmt.Println("事务C") } /* ·诊断完毕后连续输出“您的诊断已结束”,“请这边滚”,“我院永远欢迎你” */ func main() { fmt.Println("亲爱的患者,欢迎来到我院!") /*多个defer时,执行顺序是倒置的*/ //第1个defer会倒数第1个执行 defer fmt.Println("我院永远欢迎你") //第2个defer会倒数第2个执行 defer fmt.Println("请这边滚") //第3个defer会倒数第3个执行 defer fmt.Println("您的诊断已结束") xingzuoZhensuo() fmt.Println("事务A") fmt.Println("事务B") fmt.Println("事务C") }
输出:
亲爱的患者,欢迎来到我院! 请输入您的生日,例如0823 1111 阁下是天蝎座 事务A 事务B 事务C 您的诊断已结束 请这边滚 我院永远欢迎你