iT邦幫忙

2021 iThome 鐵人賽

DAY 6
0

前言

Go 語言的敘述,與大部分程式語言用法差不多,所以對學過程式語言的朋友,不會太需要花時間理解,這裡來講解Go 語言的敘述,一些基本的用法。

if

相信 if 是大部分程式語言都有的判式,當中的結構先參考以下,

if condition {
    // run code here.
}

結構裡會有一個條件,這個條件是個布林值,如果為 true,則會執行括號裡的程式碼,相反的,如果為 false,則會直接跳過,我們直接帶入一個實例:

package main
 
import "fmt"
 
func main(){
   // 宣告點(2,1)
   var x = 2
   var y = 1
   // 判斷是否(2,1)在直線方程式y=x-1上
   if y == x-1 {
       fmt.Println("(2,1)在直線方程式y=x-1上")
   }
}

可以試著自己執行看看此段程式碼,因為 if 後的條件是成立的,所以會執行括號內的程式碼,結果會印出"(2,1)在直線方程式y=x-1上"。

而if敘述,常常會伴隨著 else,if else 相當於二選一的概念,當 if 中的條件不成立時,則會執行 else 裡的程式碼,我們先看一下結構:

if condition {
       // run code here.
   } else{
       // run code here.
   }

這裏直接來看一個實例:

package main

import "fmt"

func main(){
  // 宣告點(2,2)
  var x = 2
  var y = 2
  // 判斷是否(2,2)在直線方程式y=x-1上
  if y == x-1 {
      fmt.Println("(2,2)在直線方程式y=x-1上")
  } else{
   fmt.Println("(2,2)不在直線方程式y=x-1上")
  }
}

可以試著自己執行看看此段程式碼,因為 if 後的條件沒有成立的,所以會執行 else 括號內的程式碼,結果會印出" (2,2) 不在直線方程式 y=x-1 上"。

而一個敘述,常常不會只有一個情況,所以會有各種不同的條件,然而需要增加更多的判斷,這時就可以多增加 else if 來新增條件判斷,以執行程式:

if condition {
       // run code here.
   } else if condition {
       // run code here.
   } else {
       // run code here.
   }

這裏也直接來看一個實例:

package main
 
import (
   "fmt"
)
 
func main() {
   x := 31
 
   if x < 10 {
       fmt.Println("x小於10")
   } else if x < 20 {
       fmt.Println("x大於等於10,x小於20")
   } else if x < 30 {
       fmt.Println("x大於等於20,x小於30")
   } else {
       fmt.Println("x大於30")
   }
}

if 敘述可以有需多的變化,可以依自己的需求來設計 if 敘述,再來我們將繼續介紹另一種敘述。

switch

switch 敘述算是一種語法糖,其目的是在簡化 if 敘述的語法, switch 是 C 家族語言的傳統,Go 語言保留了這項特性,且對其做些微的改良,我們先來看 switch 的結構語法:

switch v {
   case a, b:
       // run 1_block code here.
   case c:
       // run 2_block code here.
       fallthrough
   case d:
       // run 3_block here.
   default:
       // run 4_block here.
   }

這裡稍微講解一下 switch 的語法,switch 會檢查資料 v,並依照 v 的值來決定執行哪個 case 裡的程式。仔細來說,當 v 的值等於 a 或 b,則會執行 1_block,依此類推,若最後三個case的都不成立,則會執行 default 裡的程式。而在 case c 尾端,加上了 fallthrough 敘述,這時候會強制執行下一段程式碼。在這邊直接帶一個例子:

package main

import (
   "fmt"
)
 
func main() {
   x := 31
 
   switch {
   case x < 10:
       fmt.Println("x小於10")
   case x < 20:
       fmt.Println("x大於等於10,小於20")
   case x < 30:
       fmt.Println("x大於等於20,小於30")
   default:
       fmt.Println("x大於30")
   }
}

由上述例子,因為 x 為31,都不符合三個 case 的條件,所以自然執行 default 裡的程式碼。

結語

今天介紹完了 Go 語言的敘述基本用法,其實敘述要寫得好,是需要依照自己的需求下去設計的,一層 if 再包一層 if ,包了三四層後,或許就會對未來更改需求時,產生許多的麻煩,所以看似簡單的敘述,遇到複雜的需求時,也會需要花時間來設計,希望今天的講解有幫助到您!

參考來源

https://opensourcedoc.com/golang-programming/selection/


上一篇
Day5-Go變數介紹
下一篇
Day7-Go迴圈
系列文
golang後端入門分享30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言