4
4
5
5
## 程式
6
6
7
- 這就像一個傳統,在學習大部分語言之前,你先學會如何編寫一個可以輸出` hello world ` 的程式。
7
+ 這就像一個傳統,在學習大部分語言之前,你先學會如何編寫一個可以輸出 ` hello world ` 的程式。
8
8
9
9
準備好了嗎?Let's Go!
10
10
@@ -22,30 +22,30 @@ func main() {
22
22
Hello, world or 你好,世界 or καλημ ́ρα κóσμ or こんにちはせかい
23
23
24
24
## 詳解
25
- 首先我們要了解一個概念,Go 程式是透過 ` package ` 來組織的
25
+ 首先我們要了解一個概念,Go 程式是透過 ` package ` 來組織的。
26
26
27
- ` package <pkgName> ` (在我們的例子中是` package main ` )這一行告訴我們當前檔案屬於哪個套件,而套件名 ` main ` 則告訴我們它是一個可獨立執行的套件,它在編譯後會產生可執行檔案。除了 ` main ` 套件之外,其它的套件最後都會產生` *.a ` 檔案(也就是套件檔案)並放置在` $GOPATH/pkg/$GOOS_$GOARCH ` 中(以 Mac 為例就是` $GOPATH/pkg/darwin_amd64 ` )。
27
+ ` package <pkgName> ` (在我們的例子中是` package main ` )這一行告訴我們當前檔案屬於哪個套件,而套件名 ` main ` 則告訴我們它是一個可獨立執行的套件,它在編譯後會產生可執行檔案。除了 ` main ` 套件之外,其它的套件最後都會產生 ` *.a ` 檔案(也就是套件檔案)並放置在 ` $GOPATH/pkg/$GOOS_$GOARCH ` 中(以 Mac 為例就是 ` $GOPATH/pkg/darwin_amd64 ` )。
28
28
29
- > 每一個可獨立執行的 Go 程式,必定包含一個` package main ` ,在這個 ` main ` 套件中必定包含一個入口函式` main ` ,而這個函式既沒有參數,也沒有回傳值。
29
+ > 每一個可獨立執行的 Go 程式,必定包含一個 ` package main ` ,在這個 ` main ` 套件中必定包含一個入口函式 ` main ` ,而這個函式既沒有參數,也沒有回傳值。
30
30
31
- 為了列印` Hello, world... ` ,我們呼叫了一個函式` Printf ` ,這個函式來自於 ` fmt ` 套件,所以我們在第三行中匯入了系統級別的 ` fmt ` 套件:` import "fmt" ` 。
31
+ 為了列印 ` Hello, world... ` ,我們呼叫了一個函式 ` Printf ` ,這個函式來自於 ` fmt ` 套件,所以我們在第三行中匯入了系統級別的 ` fmt ` 套件:` import "fmt" ` 。
32
32
33
33
套件的概念和 Python 中的 package 類似,它們都有一些特別的好處:模組化(能夠把你的程式分成多個模組)和可重用性(每個模組都能被其它應用程式反覆使用)。我們在這裡只是先了解一下套件的概念,後面我們將會編寫自己的套件。
34
34
35
- 在第五行中,我們透過關鍵字 ` func ` 定義了一個 ` main ` 函式,函式體被放在` {} ` (大括號)中,就像我們平時寫 C、C++或 Java 時一樣。
35
+ 在第五行中,我們透過關鍵字 ` func ` 定義了一個 ` main ` 函式,函式體被放在 ` {} ` (大括號)中,就像我們平時寫 C、C++ 或 Java 時一樣。
36
36
37
37
大家可以看到 ` main ` 函式是沒有任何的參數的,我們接下來就學習如何編寫帶參數的、回傳 0 個或多個值的函式。
38
38
39
- 第六行,我們呼叫了 ` fmt ` 套件裡面定義的函式` Printf ` 。大家可以看到,這個函式是透過` <pkgName>.<funcName> ` 的方式呼叫的,這一點和 Python 十分相似。
39
+ 第六行,我們呼叫了 ` fmt ` 套件裡面定義的函式 ` Printf ` 。大家可以看到,這個函式是透過 ` <pkgName>.<funcName> ` 的方式呼叫的,這一點和 Python 十分相似。
40
40
41
- > 前面提到過,套件名和套件所在的資料夾名可以是不同的,此處的 ` <pkgName> ` 即為透過` package <pkgName> ` 宣告的套件名,而非資料夾名。
41
+ > 前面提到過,套件名和套件所在的資料夾名可以是不同的,此處的 ` <pkgName> ` 即為透過 ` package <pkgName> ` 宣告的套件名,而非資料夾名。
42
42
43
43
最後大家可以看到我們輸出的內容裡面包含了很多非 ASCII 碼字元。實際上,Go 是天生支援 UTF-8 的,任何字元都可以直接輸出,你甚至可以用 UTF-8 中的任何字元作為識別符號。
44
44
45
45
46
46
## 結論
47
47
48
- Go 使用` package ` (和 Python 的模組類似)來組織程式碼。` main.main() ` 函式( 這個函式位於主套件)是每一個獨立的可執行程式的入口點。Go 使用 UTF-8 字串和識別符號( 因為 UTF-8 的發明者也就是 Go 的發明者之一) ,所以它天生支援多語言。
48
+ Go 使用 ` package ` (和 Python 的模組類似)來組織程式碼。` main.main() ` 函式( 這個函式位於主套件)是每一個獨立的可執行程式的入口點。Go 使用 UTF-8 字串和識別符號( 因為 UTF-8 的發明者也就是 Go 的發明者之一) ,所以它天生支援多語言。
49
49
50
50
## links
51
51
* [ 目錄] ( < preface.md > )
0 commit comments