## 程序結構
- 包聲明
- 引入包
- 函數
- 變量
- 語句 & 表達式
- 注釋
以實際代碼進行講解:
```
/* 這是包聲明 */
package main
/* 這是引入包 */
import "fmt"
/* 這是函數 */
func main() {
/* 這是變量 */
str := "hello word"
/* 這是語句 */
fmt.Println(str)
}
```
- 第一行代碼 package main 定義了包名。你必須在源文件中非注釋的第一行指明這個文件屬于哪個包。
> 每個 Go 應用程序都包含一個名為 main 的包
- import "fmt" 告訴 Go 編譯器這個程序需要使用 fmt 包
- func main() 是程序開始執行的函數。main 函數是每一個可執行程序所必須包含的,一般來說都是在啟動后第一個執行的函數。
>如果有 init() 函數則會先執行init()函數
- go語言中注釋 單行用:// ,或者 /\*...*/
```go
func main() {
// str := "hello word"
fmt.Println(str)
}
```
- go語言中一行代表一個語句結束。每個語句不需要像 C 家族中的其它語言一樣以分號分號(;) 結尾
**其他約定**
- 大寫字母開頭的變量是可導出的,即其他包可以讀取,是公用變量;小寫字母開頭的不可導出,是私有變量。
- 大寫字母開頭的函數也是一樣,相當于class中帶public關鍵詞的公有函數;小寫字母開頭就是有private關鍵詞的私有函數