Go 語言的敘述,與大部分程式語言用法差不多,所以對學過程式語言的朋友,不會太需要花時間理解,這裡來講解Go 語言的敘述,一些基本的用法。
相信 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 敘述算是一種語法糖,其目的是在簡化 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/