2、Go目录结构及包管理

一、项目结构

一个Go语言项目的目录一般包含以下三个子目录:

  • src 目录:放置项目和库的源文件;

  • pkg 目录:放置编译后生成的包/库的归档文件;

  • bin 目录:放置编译后生成的可执行文件。

workspace
    |
    +--- bin // go install 安装目录。
    |      |
    |       +--- learn
    |
    |
    +--- pkg // go build ⽣成静态库 (.a) 存放目录。
    |       |
    |      +--- darwin_amd64
    |             |
    |             +--- mylib.a
    |                     |
    |                     +--- mylib
    |                         |
    |                         +--- sublib.a
    |
    +--- src // 项目源码目录。
          |
          +--- learn
          |      |
          |      +--- main.go
          |
          |
          +--- mylib
                 |
                 +--- mylib.go
                 |
                 +--- sublib
                        |
                        +--- sublib.g

二、main 包

  • 所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包。 go语言的编译器会将这种名字的包编译为二进制可执行文件。

  • main包下肯定会有名为main()的函数,main()是程序的入口。

  • 编译完会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名

三、导包

package main

import (
    . "fmt"  // 简洁模式导入
    _ "fmt"  // 非导入模式:仅让该包执行初始化函数
    io "fmt" // 别名模式导入
)

func main() {
    Println("Hello Go!")
    io.Println("Hello Go!")
}

Last updated