1. 程式人生 > 其它 >Go語言頭禿之路(一)

Go語言頭禿之路(一)

技術標籤:GoGo

更新系列

Go語言頭禿之路(零)
Go語言頭禿之路(二)
Go語言頭禿之路(三)
Go語言頭禿之路(四)
Go語言頭禿之路(五)
Go語言頭禿之路(六)


各種基礎語句

  • if語句
    Golang支援在if語句中定義變數
    if age:=2;age >= 18 {
    	fmt.Println("成年人為自己負責!")
    } else {
    	fmt.Println("未成年家長負責!")
    }
    
    注意:
    1. 一定要有大括號;
    2. else與倆括號必須在同一行,換行會報錯;

  • switch語句
    golang的switch語句case後的表示式可以有多個,用逗號分隔。switch表示式和case表示式可以是常量、變數或者有返回函式,但是switch表示式值和case表示式值型別必須相同
    ,且多個case常量值不能重複(變數可以重複),否則編譯不過。
    golang中的case語句塊中不需要加break,其預設會在末尾加上
    在這裡插入圖片描述
    穿透fallthrough(可以寫多個表示式替代此功能)
    在這裡插入圖片描述
    if和switch使用區分:
    當具體數值不多,且為基礎資料型別可以使用switch;
    當做區間判斷或結果為bool值時使用if。

  • for迴圈
    • 包含變數初始化、迴圈判斷條件、迴圈語句塊、變數迭代。
      三種形式
      for i:=1;i<10;i++ {
      		fmt.Println("hello,",i)
      	}
      
      	j:=1
      	for j<10 {
      		fmt.Println("world."
      ,j) j++ } k:=1 for { // 沒有break就是死迴圈;等價於for ;; { if k<10 { fmt.Println(k) k++ } else { break } }
      go語言沒有while語句,上慄第三種方式可以替代之。
    • 遍歷字串
      注意中文
      str1 := "hello,world!來啦"
      // 按照單位元組遍歷,一箇中文佔3個位元組,會出現亂碼
      for i := 0;i<len(str1);i++ {
      	fmt.Printf("%c\n",str1[i])
      }
      
      str2 := "hey,gay!溜溜"
      // 按照字元遍歷,中文可以正常顯示,但對應的下標不是順序的 for k, v := range str2 { fmt.Printf("%d %c\n",k,v) }
  • break
    預設跳出最近一層迴圈,如果需要跳出巢狀迴圈可以使用標籤
    飯粒:
    func main()  {
    	label2:
    	for i:=0;i<3;i++ {
    		for j:=0;j<3;j++ {
    			if j == 2 {
    				break label2
    			}
    			fmt.Println("j =", j)
    		}
    	}
    }
    
    同樣的,continue也可以帶標籤,比如標籤在外層迴圈,則停止外層的當前迴圈,開始下一次外層迴圈。
    goto語法作用相同。(不建議使用goto語句,容易程式混亂)