## 程序结构
- 包声明
- 引入包
- 函数
- 变量
- 语句 & 表达式
- 注释
以实际代码进行讲解:
```
/* 这是包声明 */
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关键词的私有函数