Golang學習筆記:Windows系統使用VSCode開發Go

最後更新於 2022 年 2 月 27 日

Go是Google開發的一種靜態強型別、編譯型、並發型,並具有垃圾回收功能的程式語言。

安裝Go

直接下載

進入 https://golang.org/dl/ 選擇你作業系統的載點下載(下面有更多舊版本可以選擇,如無需求就直接下載最新版本)

DW Golang學習筆記:Windows系統使用VSCode開發Go

安裝過程無須修改任何設定。

go1 1 Golang學習筆記:Windows系統使用VSCode開發Go
go2 1 Golang學習筆記:Windows系統使用VSCode開發Go

此步驟為選擇Go的安裝位置 (GOROOT路徑,預設為C:\Go\ 建議不必修改)

go3 2 Golang學習筆記:Windows系統使用VSCode開發Go
go4 2 Golang學習筆記:Windows系統使用VSCode開發Go
go5 1 Golang學習筆記:Windows系統使用VSCode開發Go

安裝完畢。

Chocolatey

建議使用 Chocolatey 安裝,choco 會自動更新 Golang 的版本,如果不需要也可以直接到Go官網下載。

請以工作管理員身分開啟cmd

$ choco install golang

× 中途會詢問你是否要運行腳本,輸入 y 按 Enter繼續安裝。

go1 Golang學習筆記:Windows系統使用VSCode開發Go

× 安裝過程中會自動添加環境變數,GOPATH路徑預設為 C:\Users\userName\go

go4 1 Golang學習筆記:Windows系統使用VSCode開發Go

添加環境變數

如果你是直接下載安裝,請將 C:\Users\userName\go\bin 添加到環境變數 Path 中。

go2 Golang學習筆記:Windows系統使用VSCode開發Go

並添加一個 GOPATH 值為 go 路徑。

go3 1 Golang學習筆記:Windows系統使用VSCode開發Go

完畢後,重新開啟 cmd 輸入 go version 確認安裝是否完成,若顯示正確版本則代表Go安裝完畢。

$ go version
go version go1.16.4 windows/amd64

輸入 go env 可以查看 Go 相關的環境變數設定資訊,如GOPATH和GOROOT。

VSCode安裝Go延伸模組

開啟VSCode 延伸模組 搜索 Go 並安裝。

go5 Golang學習筆記:Windows系統使用VSCode開發Go

安裝完畢後VSCode右下角會跳出一個錯誤訊息,要求你安裝 gopls,直接點擊「Install」安裝;

或者開啟cmd 輸入 go get -v golang.org/x/tools/gopls 來安裝。

gopls是為go語言提供語言功能(如代碼完成,導航,搜索等)所必需的核心工具之一。請參閱擴展依賴的工具列表:https : //github.com/golang/vscode-go/blob/master/docs/tools.md

go6 Golang學習筆記:Windows系統使用VSCode開發Go
go7 Golang學習筆記:Windows系統使用VSCode開發Go

印出Hello World

新增一個 .go 格式的檔案,並複製貼上以下代碼:

package main

import "fmt"

func main() {
	fmt.Println("Hello World")
}

go run

通過go底下的run子命令來將 以.go結尾的源文件 和 關聯庫 連結到一起,運行最終的可執行文件。

$ go run fileName.go
Hello World

go build

如果你希望自己的程序能重複運行,那麽就需要去編譯這個程序,並且能夠將編譯結果保存下來以備將來之用。這個可以用build子命令來實現:

$ go build fileName.go
$ ./fileName
Hello World

這會創建一個名爲 fileName 的可執行的二進制檔案(在Windows系統下生成的是.exe執行檔),之後你可以在任何時間去運行這個二進制文件,不需要其它的任何處理。

Hello World

這段代碼會output出 Hello World 字樣。

go9 Golang學習筆記:Windows系統使用VSCode開發Go

Go語言原生支持Unicode標準,所以你可以用Go語言處理世界上的任何自然語言。

現在稍微解釋一下這段代碼的意思。

  • Package(包)

程式碼的目錄,可以重複利用程式的方案,方便維護。Go默認提供很多package,ex:fmt、is…等,開發者也可以創建自己的package。

package要求所有檔案的第一行添加package名稱,標示該文件所歸屬的package。

package main //package main表示一個可獨立執行的程序,每個 Go 應用程序都包含一個名為 main 的包。
  • 套件

第六行是使用了fmt套件的Printf函式來打印字串,因此我們需要先在第三行匯入 fmt 套件:

import "fmt"

呼叫套件裡的函式是透過 packageName.funcName 來呼叫的。

fmt使用與C的printf和scanf類似,但更簡單。

官方文檔:https://golang.org/pkg/fmt/

  • func (函式)

第五行 func main(){ //code } 是透過關鍵字 func 定義了一個 main 函式,函式體被放在{ } 之中,與C,C++,JAVA…等程式語言用法近乎相同。

main 函數是每一個可執行程序所必須包含的,一般來說都是在啟動後第一個執行的函數

使用函式

寫一個 printHello 的函式來印出 Hello World:

package main

import "fmt"

func main() {
	printHello()
}

func printHello() {
	fmt.Println("Hello World")
}

注意事項

一、要特別特別注意的是,若你有其他程式語言撰寫經驗的話有可能會犯 { 獨立一行 這個錯誤

// 1 正確寫法
func printHello() {
	//Code
}

// 2 錯誤寫法 { 單獨一行
func printHello() 
{
	//Code
}

1 為 { 接在函式名後方, 2 為 { 自己獨立一行,正確寫法應該為 1,若是將 { 單獨寫在一行會報錯:

unexpected semicolon or newline before {

二、Go語言中不需要在每一個語句後面加上 ; 分號,Go編譯器會自動完成。如果要將多個語句寫在同一行才需要使用 ; 作為區分,但實際開發中並不建議這樣寫。

三、每個package中只能有一個 main()函數,否則會報 main redeclared in this block previous declaration at .. 的錯誤。

下一次預計會寫變數型態的相關筆記,等我有空吧哈哈。

0 0 評分數
Article Rating
訂閱
通知
guest

0 Comments
在線反饋
查看所有評論