Skip to main content

Golang快速入門-1

在這邊要介紹一下go的基本用法 而這些用法在A Tour of Go也都有介紹

在下面的程式碼如果有想測試的,也都可以貼到Go Playground來進行測試喔

但就讓我在這邊也再次描述一遍吧

程式進入點#

在go的程式中,當你執行一個go的檔案,他會第一個跑的程式就是main 範例如下

package main
import "fmt"
func main() {
fmt.Println("Hello Main!")
}
func first() {
fmt.Println("Hello First")
}

https://play.golang.org/p/PwgrD2jABVf 他會印出 Hello Main

Import#

當你使用程式時,會需要依賴第三方的套件,就會需要使用import來讓程式知道你希望call的function要從哪裡來

而這些套件有什麼function可以讓你使用,可以到 https://pkg.go.dev/std 來查詢你想要的功能 在這邊以fmt為舉例 https://pkg.go.dev/fmt#pkg-index 這邊就有列出他可以使用的function 而我們剛剛在上述程式中使用的Println就是其中一個function

變數宣告#

在go裡面,如果要宣告變數,有幾種方法

var x string
x = "Hello World!"
var y string = "Hello World!"
z := "Hello World!"

上述這三種宣告方法出來的內容皆會是一樣的 := 是go的一個特別宣告的方式,就是可以自動將左邊的內容變成右邊的型態的變數,在這個方式下有幾個特別要注意的點

  • := 可以使用多的變數(這個可以配合下方的function混合著看)
package main
import "fmt"
func swap(x string, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
  • := 的左邊至少要有一個新變數
package main
import "fmt"
func swap(x string, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
b, c := swap("foo", "bar")
fmt.Println(b, c)
b, c := swap("golang", "javascript") // Error!!
}

在golang裡面,他會預設檢查你是否有使用到所有的變數,如果沒使用到,他會跳出警告跟你說你沒用到這個變數,並不讓你編譯程式,但如果還是想要保留這個變數,就可以使用"_"來告訴編譯器說你有用到這個變數 失敗版

test := "Hello World!" // test declared but not used

成功版

test := "Hello World!"
_ = test

邏輯判斷式(if/else if)#

在golang裡面的if寫法跟其他的語言比較不一樣,不需要將條件做括號

a := 1
b := 2
if a > b {
fmt.Println("a is greater than b")
} else {
fmt.Println("a is smaller than b")
}

另外,在golang裡的if還有個特別的用法,就是可以在if前再放一段code,他的作用域就僅在if內,出去就取不到你裡面的內容了

if name := "john"; name != "" {
fmt.Println("name:", name) // name: john
}
fmt.Println("name:", name) // !!ERROR