1.程序示例

以实际代码进行讲解:

package main

// 这是引入包
import "fmt"

// 入口函数
func main() {
// 定义变量
str := "hello word"
// 输出语句
fmt.Println(str)
}

2.程序组成

2.1 包名: package main

package定义包名,必须在源文件中非注释的第一行指明这个文件属于哪个包。每个 Go 应用程序都包含一个名为 main 的包,并且该包包含一个叫main()的函数(该函数是Go程序执行的起点,既不能带参数,也不能定义返回值)。

注意事项:

  • 只有package名称为main的包可以包含main()函数。
  • 一个可执行程序有且仅有一个main包。

2.2 导入包: import “fmt”

import语句用于导入该程序所依赖的包。由于本示例程序用到了Println()函数,所以需要导入该函数所属的fmt包。fmt包实现了格式化IO(输入/输出)

注意事项:

  • 通过import关键字来导入其他非main包。
  • 可以通过import关键字单个导入,也可以同时导入多个。

2.3 主函数: func main()

func main()是程序入口。所有Go函数以关键字func开头,每一个可执行程序都必须包含main()函数,通常是程序启动后第一个执行的函数,如果有init()函数则会先执行init()函数。

2.4 注释

注释就是对代码的功能进行解释,方便开发人员理解被注释的代码。Go 语言中有以下两种形式。

  • 单行注释: //
  • 多行注释: /**/,不可以嵌套使用。

2.5 语句结束

Go语言中一行代表一个语句结束。每个语句不需要像C 家族中的其它语言一样以分号分号; 结尾。

如果打算将多个语句写在同一行,它们则必须使用分号;人为区分;但在实际开发中并不鼓励这种做法。

3. 可见性规则

Go语言中,使用大小写来决定标识符(常量、变量、类型、接口、结构或函数)是否可以被外部包所调用。

  • 如果标识符以大写字母开头,那么其对象就可以被外部包的代码所使用(使用时程序需要先导入这个包),如同面向对象语言中的public
  • 如果标识符以小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并且可用的,如同面向对象语言中的private

4.项目工程结构

GoItem (GOPATH)
├── bin (GOBIN)
├── pkg
└── src
├── app
│   ├── controller
│   │   └── String.go
│   ├── main.go
│   ├── model
│   ├── service
│   └── test
└── app2
├── controller
│   └── String.go
├── main.go
├── model
├── service
└── test