代码胜过千言万语

作为一个有代码基础的人,看懂这些应该不难

if 语句

示例代码如下:

package main
import "fmt"

func main(){
	a := 10
	if a < 20 {
		fmt.Println("a 小于 20")
	}
	fmt.Printf("a 的值为:%d\n",a)
}

// 输出结果为:
>>> a 小于 20
>>> a 的值为:10

if...else 语句

示例代码如下:

package main
import "fmt"

func main(){
	a := 30
	if a < 20 {
		fmt.Println("a 小于 20")
	} else {
		fmt.Println("a 大于 20")
	}
	fmt.Printf("a 的值为:%d\n",a)
}

// 输出结果为:
>>> a 大于 20
>>> a 的值为:30

if 嵌套语句

示例代码如下:

package main
import "fmt"

func main() {
	a := 100
   	b := 200
   if a == 100 {
       if b == 200 {
          fmt.Printf("a 的值为 100 , b 的值为 200\n" );
       }
   }
   fmt.Printf("a 值为 : %d\n", a );
   fmt.Printf("b 值为 : %d\n", b );
}

// 输出结果为:
>>> a 的值为 100 , b 的值为 200
>>> a 值为 : 100
>>> b 值为 : 200

switch 语句

示例代码如下:

package main
import "fmt"

func main(){
	num := 10
	switch var1 {
    	case 10:
        	fmt.Println("10")
			fallthrough
    	case 12:
        	fmt.Println("12")
    	default:
        	fmt.Println("我是default")
	}
}

// 输出结果为:
>>> 10
>>> 12

fallthrough 穿透

使用 fallthrough 会强制执行后面的 case 语句

select 语句

select 是 Go 中的一个控制结构,类似于 switch 语句。

select 语句只能用于通道操作,每个 case 必须是一个通道操作,要么是发送要么是接收。

select 语句会监听所有指定的通道上的操作,一旦其中一个通道准备好就会执行相应的代码块。

如果多个通道都准备好,那么 select 语句会随机选择一个通道执行。如果所有通道都没有准备好,那么执行 default 块中的代码。

package main
import "fmt"

func main(){
	
	select {
	  case <- channel1:
	    // 执行的代码
	  case value := <- channel2:
	    // 执行的代码
	  case channel3 <- value:
	    // 执行的代码
	    // 你可以定义任意数量的 case
	  default:
	    // 所有通道都没有准备好,执行的代码
	}
}