go語言學習(六、語言條件語句)

Go 語言提供了以下幾種條件判斷語句:

package main

import "fmt"

func main() {
	// If 在布爾表達式爲 true 時,其後緊跟的語句塊執行,如果爲 false 則不執行
	if true {
		fmt.Println("犀利的大熊")
	}

	// If 在布爾表達式爲 true 時,其後緊跟的語句塊執行,如果爲 false 則執行 else 語句塊
	if true {
		fmt.Println("犀利的大熊")
	} else {
		fmt.Println("犀利的二熊")
	}

	// If嵌套 表達式都爲真的時候執行
	if true {
		if true {
			fmt.Println("犀利的大熊")
		}
	}

	// switch 語句用於基於不同條件執行不同動作,
	// 每一個 case 分支都是唯一的,從上至下逐一測試,直到匹配爲止
	// switch 語句執行的過程從上至下,直到找到匹配項,匹配項後面也不需要再加 break
	// switch 默認情況下 case 最後自帶 break 語句,匹配成功後就不會執行其他 case
	// 如果我們需要執行後面的 case,可以使用 fallthrough
	var1 := 100
	switch var1 {
	case 90:
		fmt.Println(90)
	case 80, 79, 78:
		fmt.Println(80)
	case 70:
		fmt.Println(70)
	default:
		fmt.Println("沒匹配到值")
	}

	// select 是 Go 中的一個控制結構,類似於用於通信的 switch 語句
	// 每個 case 必須是一個通信操作,要麼是發送要麼是接收
	// 它的語法如下
	// 每個 case 都必須是一個通信 所有 channel 表達式都會被求值
	// 所有被髮送的表達式都會被求值 如果任意某個通信可以進行,它就執行,其他被忽略
	// 如果有多個 case 都可以運行,Select 會隨機公平地選出一個執行。其他不會執行
	var c1, c2, c3 chan int
	var i1, i2 int
	select {
	case i1 = <-c1:
		fmt.Println("received ", i1, "from", c1)
	case c2 <- i2:
		fmt.Println("send ", i2, " to c2")
	case i3, ok := <-c3: // same as: i3, ok := <-c3
		if ok {
			fmt.Println("received ", i3, " from c3")
		} else {
			fmt.Println("c3 is closed")
		}
	default:
		fmt.Println("no communication")
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章