iT邦幫忙

2023 iThome 鐵人賽

DAY 3
1
Modern Web

起步Go!Let's Go!系列 第 3

[ Day 03 ] 你的第一支 Go 程式

  • 分享至 

  • xImage
  •  

第一個程式

今天我們就來撰寫你的第一支程式吧!!

撰寫程式

昨天有提到 Go 的工作區,我們在 src 的資料夾添加 myProject 的資料夾,之後練習的檔案都可以放在這,資料夾名稱你可以取你喜歡的名稱。
接下來,在裡面添加一個 hello_world.go 的檔案,並用 VS Code 開啟。
複製以下的程式碼到 hello_world.go 檔案中。

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

這樣就完成你的第一支程式了,那該怎麼執行呢?

Go 在執行程式需要經過以下三個步驟:

  1. 撰寫程式
  2. 建置 (build)
  3. 執行程式

建置

程式已經已經寫完了,所以我們要來建置該程式,在終端機上輸入:

$ go build hello_world.go

當你輸入完畢按下 Enter 後,終端機沒有反應,是正常的。但當你去看 myProject 資料夾多出了 hello_world 的 Unix 執行檔

執行程式

要怎麼執行該支程式呢?
其實有很多方法,你可以去點擊剛剛多出的 hello_world 的執行檔,也可以執行以下指令,在終端機輸入以下指令:

$ ./ main
Hello World!!

這樣一來就完成了你第一支 Go 的程式。

發生什麼事了?!

接下來,來解釋一下剛剛那段程式碼到底做了什麼事。

package

Go 是以"包( package )"作為程式專案的管理單位。所以在每個 Go 的程式中,都必須先聲明它所屬的包是哪個;而且每個專案都至少包含一個 main 包,不然編譯器會直接報錯,且不會生成執行檔。
Go package 包含以下特點:

  1. 名稱空間和可導出性: Go 允許我們組織程式碼到不同的包中,每個包有自己的名稱,避免名稱衝突。首字母大寫的名稱表示該名稱可以被其他包使用,而小寫的名稱只能在同一包中使用。
  2. 依賴管理: Go 讓我們可以清楚地聲明和管理程式碼依賴關係,確保程式能夠順利運行,同時易於分享和協作。
  3. 編譯性能: Go 的包系統設計高效,只需編譯需要的包,加速編譯過程,特別適合大型專案開發。

import

import 是 Go 語言中用於匯入套件的關鍵字,主要用於導入其他包 ( package ) 中的函數、變數或類型,以便在當前的程式中使用它們,同時,也可以匯入別人寫好的 package,匯入套件的方式如下:

import "package_name"

如果有多個需要匯入的套件可以這樣寫:

import "net/http"
import '"time"
import "fmt"

也可以這樣寫:

import(
    "net/http"
    "time"
    "fmt"
)

func main()

func

func 是 Go 中定義函數(function)的關鍵字。所有函數都用 func 為開頭。結構如下:

func 函數名稱(參數)(返回值){
    // 函數主體
}

以上就是基本的 func 的構造,之後會再細講有關參數及返回值的內容。

main()

main() 是 Go 程式的進入點,並且一個 main package 只能有一個 main 函數,且不接受任何參數,也不返回任何值。

fmt.Println

fmt 是 Go 的標準庫中的一個套件(package),用於格式化輸出和輸入。它提供了一些函數,讓我們可以輕鬆地在終端上輸出文本,並控制輸出的格式。
Println 就是 fmt 其中一個函數,主要是用於將文本或變數的值輸出到終端,每次呼叫後會自動換行。
如果翻成中文就是:「 使用 fmt 這個套件中的 Println 函數 」。

今天的 Go 冒險就大致上是這樣了,明天將繼續介紹 Go 有趣之處。

參考資料:

  1. 最速網頁開發:用Go Web一手建立高能效網站系統

上一篇
[ Day 02] 萬事起頭難,但是裝 Go 一點都不難!
下一篇
[ Day 04 ] Go 的資料型態及運用
系列文
起步Go!Let's Go!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言