02 | 程序入口

每个go程序都是由包组成,程序从main包开始。 在同一个目录下的源码文件都需要被声明为属于同一个代码包。

  • import 用来导入包
import (
    "fmt"
    "math/rand"
)
import "fmt"
import "math"
  • 导出名
    如果一个名字以大写字母开头,那么它就是已导出的
package main

import (
    "fmt"
    "math"
)

func main() {
    fmt.Println(math.Pi)
}

源码文件分为三种:命令源码文件,库源码文件,测试源码文件。


image.png

命令源码文件

命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的。我们可以通过构建或安装,生成与其对应的可执行文件,后者一般会与该命令源码文件的直接父目录同名。

  • 应用程序入口
  1. 必须是main包 main函数
  2. 不一定叫main.go 文件
  • 退出返回值
  1. main函数不支持任何返回值
  2. 需要通过os.Exit()来返回状态
  • 命令行参数
  1. main函数不支持接收命令行参数
  2. 需要通过os.Args 变量来传递
  3. 更复杂的参数解析使用flag包

库源码文件

库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(只要遵从 Go 语言规范的话)。

  • 源码文件所在的目录相对于 src 目录的相对路径就是它的代码包导入路径
  • 名称的首字母为大写的程序实体才可以被当前包外的代码引用,否则它就只能被当前包内的其他代码引用
  • 在 Go 1.5 及后续版本中,可以创建internal代码包(第三种访问权限:模块级私有)
  • 不允许导入后不使用,如果需要的话 import(_"fmt")

测试文件

  • 源码文件以 xxx_test.go 结尾
  • 测试方法名以Test开头 TestXxx(t *testing.T)

你可能感兴趣的:(02 | 程序入口)