初學Go(一)

2020-10-19 16:00:33

一、何為Go?何為VsCode?

Go語言(或 Golang)是Google開發的開源程式語言,是非常年輕的一門語言,它的主要目標是「兼具Python 等動態語言的開發速度和C/C++等編譯型語言的效能與安全性」。有關於Go語言的自主學習,可參考Go語言.
VsCode全稱"Visual Studio Code",是一款編譯軟體,可以支援市面上99%的程式語言,當需要編譯相應的語言時,只需要下載相應的擴充套件包即可。

二、Go語言與VsCode安裝

主要步驟可參考Go語言開發環境.
這裡特別提醒需要跳過的幾個坑

  1. 下載Go核心的時候,儘量選擇早一些的版本,這樣會做到很好的相容,博主選的是Go1.14系列版本
    1.14.10
  2. VsCode的終端最好選擇cmd,這樣會與教材很好的相容,如果你是powershell,那麼在執行.exe檔案時,需在前加「./」進行執行。
    cmd

三、VsCode如何編譯執行Go語言

Go語言中並沒有很好的闡述具體的VsCode操作,為此,特別注意以下幾點

  1. go build
    在終端中執行go build操作,可將.go檔案編譯為可執行的.exe檔案,教材中沒有很好的說明如何進行go build操作,以下是具體操作步驟。

在src/hello下右鍵,選擇在整合終端中開啟
具體操作
之後在終端中執行命令D:\GoProject\src\hello>main.exe
cmd
注意終端要選擇cmd,如果是powershell,需執行PS D:\GoProject\src\hello> ./main.exe,具體原因是命令列程式不同,在此不做討論。
powershell
2. 對Hello World的進一步解釋

package main  // 宣告 main 包,表明當前是一個可執行程式

import "fmt"  // 匯入內建 fmt 

func main(){  // main函數,是程式執行的入口
    fmt.Println("Hello World!")  // 在終端列印 Hello World!
}
  • package main

我們發現第一行是package main,那麼這行的意思是什麼?

可執行檔案必須包含 package main 和入口函數 main , main 包是 Go 語言程式的入口包,一個 Go 語言程式必須有且僅有一個 main 包,並且,一個 main 包中也必須有且僅有一個 main 函數。如果一個程式沒有 main 包,那麼編譯時將會出錯,無法生成可執行檔案。

簡單理解就是,如果你要建立一個可執行檔案,必須用到package main。Go 語言是使用包來組織原始碼的,並實現名稱空間的管理,給包命名的慣例是使用包所在目錄的名字。但當你要運用可執行檔案,你就得換成package main了。當編譯器發現某個包的名字為 main 時,它一定也會發現名為 main() 的函數,否則不會建立可執行檔案。 main() 函數是程式的入口,所以,如果沒有這個函數,程式就沒有辦法開始執行。

  • 匯入內建fmt

fmt指令會從指定的檔案裡讀取內容,將其依照指定格式重新編排後,輸出到標準輸出裝置。

匯入內建fmt,fmt可以理解為一種格式化包,在Go語言下import 「fmt」,可以理解為fmt是一種官方包,之後輸出如果用fmt.Println必須匯入內建fmt,而輸出用fmt.Println的好處就是不會出錯。(目前先這樣理解)

  • func main()
    func 即function,宣告main是函數

  • 語法對比
    好像每句都不要加「;」,這和C++和Java有很大程度上不同,算是一種對格式的簡化吧