所有程式碼的最基礎邏輯運算元
我想非If莫屬了
傳言只要會If Else就會寫程式了(誤)
在C#與Java裡面我們用的格式如下
if (條件式) {
條件成立的邏輯
} else {
條件不成立的邏輯
}
而在Go中 我們只需要將條件式的括號省略即可
if 條件式 {
條件成立的邏輯
} else {
條件不成立的邏輯
}
但是這裡有一個更具特色的寫法
package main
import (
"fmt"
)
func main() {
if i := geti(); i == 5 {
fmt.Println("i是5")
} else {
fmt.Println("i不是5")
}
}
func geti() int {
return 6
}
可以在比較前去賦值 再進行邏輯的比較
特別注意else不可換行
Switch的特性跟If大同小異
switch {condition}{
case {Value1}:
//logic
case {Value2}:
//logic
default:
//logic
}
package main
import (
"fmt"
"runtime"
)
func main() {
switch os := runtime.GOOS; os {
case "darwin":
fmt.Println("OS X.")
case "linux":
fmt.Println("Linux.")
default:
fmt.Printf("%s.\n", os)
}
}
package main
import (
"fmt"
"math/rand"
)
func main() {
i := rand.Intn(80)
fmt.Println(i)
switch {
case i < 30:
fmt.Println("index<30")
case i < 60:
fmt.Println("index<60")
default:
fmt.Println("index>60")
}
}
先在外部宣告好判斷的變數
透過Case去宣告判斷的範圍並執行
Defer有點特別 他是當"當前"的Function執行完的時候
才會開始執行的意思
package main
import (
"fmt"
)
func main() {
fmt.Println("Start")
test()
fmt.Println("End")
}
func finish() {
fmt.Println("Finish")
}
func test() {
defer finish()
fmt.Println("Test")
}
// OutPut
// ======
// Start
// Test
// Finish
// End
根據上面的範例Code 就可以知道它的原理了
defer也可以堆疊多次 他是Stack的概念
也就是所謂的後進先出 只要越後面宣告的 就會在結束時優先執行
GoLang的語法大致上就介紹到這樣了
For迴圈此專案目前沒用到就沒特別寫出來了
詳細可以到Go的官網去參訪一下