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
您的诊断已结束
请这边滚
我院永远欢迎你

  

原文地址:https://www.cnblogs.com/yunweiqiang/p/11787799.html