go的if 寫法很簡單,打個if就會出現Snippet可選擇,按下ENTER就會自動產生程式碼
package main
import "fmt"
func main() {
	if condition {
		
	}
}
把condition改成要寫的判斷邏輯就完成最基本的if判斷式。
package main
import "fmt"
func main() {
	a := 7
	b := 8
	if a < b {
		fmt.Println("A < B")
	}
}
如果要寫if else的判斷式,要照著官方的寫法才行喔,else跟 {的位置不可以亂改,會導致編譯失敗。
package main
import "fmt"
func main() {
	a := 7
	b := 8
	c := 9
	//標準寫法
	if a < b {
		fmt.Println("A < B")
	} else {
		fmt.Println("A > B")
	}
	//if else if
	if a > b {
		fmt.Println("A > B")
	} else if c > b {
		fmt.Println("c > B")
	} else {
		fmt.Println("b >c")
	}
	//FREE STYLE,母湯R~~~GOOGLE不要讓你這樣子寫
	if a < b{
		fmt.Println("A < B")
	}
	else
	{
		fmt.Println("A > B")
	}
}
unexpected else, expecting }
unexpected { after top level declaration
一個題外話,if else如果能少用,if else if else 這樣子的判斷式更要避免,
雖然編譯跟邏輯上是合理的,但是對閱讀CODE來說是負面的,以下是張很有名的梗圖
當你一直用IF ELSE來寫判斷式時,你的程式碼就會變成這個形狀,
可考慮這樣子作
package main
import "fmt"
func main() {
	a := 7
	b := 8
	var result bool
 
    //if else寫法,沒有不好,只是有更簡潔的寫法
	if a > b {
		result = true
	} else {
		result = false
	}
	//只用if就做到if else作的判斷,可考慮這樣子寫
	//有可能會導致程式碼行長變多,但是可讀性會比較好
	result = false
	if a > b {
		result = true
	}
	if result {
		fmt.Println("a > b")
	}
}
在go中是用switch來作選擇性敘述,一樣有Snippet,打出switch,選擇Snippet按下ENTER產生程式碼
package main
import "fmt"
func main() {
	switch expression {
	case condition:
		
	}
}
某些情境下,你用if也可以完成判斷式,但是就程式碼會變的很髒,不美觀,
多條件時可考慮用switch來完成你的判斷式,程式碼也簡潔好閱讀。
package main
import "fmt"
func main() {
	price := getPrice("toyota")
	fmt.Println("toyota price:", price)
	price = getPrice("lexus")
	fmt.Println("lexus price:", price)
	price = getPrice("ferrari")
	fmt.Println("ferrari price:", price)
	//如果用IF就要寫成波動拳惹~~
	car := "toyota"
	if car == "toyota" {
		fmt.Println("toyota price:", 650000)
	} else if car == "lexus" {
		fmt.Println("lexus price:", 1500000)
	} else if car == "bmw" {
		fmt.Println("bmw price:", 2500000)
	}
	//或是一堆IF
	if car == "toyota" {
		fmt.Println("toyota price:", 650000)
	}
	if car == "lexus" {
		fmt.Println("lexus price:", 1500000)
	}
	if car == "bmw" {
		fmt.Println("bmw price:", 2500000)
	}
}
func getPrice(car string) (ret int) {
	switch car {
	case "toyota":
		ret = 650000
	case "lexus":
		ret = 1500000
	case "bmw":
		ret = 2500000
	case "porsche":
		ret = 4500000
	default:
		ret = 0
	}
	return ret
}