拾遗:Go 代码结构

#define  @  $

概述

  • Go 编码通常将所有代码放置在同一个工作区
  • 一个工作区包含多个版本仓库,使用 Git 等工具控制
  • 每个仓库包含一个或多个包
  • 每个包由同一目录中的一份或多份源代码组成
  • 包的路径决定了其对应的 import 路径

工作区

目录结构

  • src  放置 Go 源代码
  • pkg  放置 package
  • bin  放置可执行程序

  go 工具编译生成的文件将放置在 pkg 及 bin 目录下,pkg 目录结构会根据 src 目录结构自动生成;通常在 src 目录下子目录中建立 Git 仓库

GOPATH 环境变量

  • 使用 go env 获取当前的所有的 go 环境变量,也可以使用 go env GOPATH 查询单个变量的值
  • 若未设置 GOPATH 变量,则默认与 GOROOT 变量的值相同
  • 设置 go 变量
    • export GOPATH=@HOME/GO
    • export PATH=@PATH:@GOPATH/bin

import path

  • import path 用于唯一标识一个 package,package 的导入路径由它在本地工作区或远程 Git 仓库中的位置决定 
  • 标准库中的 package 导入通常使用短路径,如: fmt、net/http 等
  • 如果将源代码放置在远程仓库中,那么 base path 建议设置为 github.com/kt10 之类的格式
  • 安装 go 程序至工作区的 bin 目录:go install github.com/kt10/hello,可以在任意目录执行(GOPATH 或 GOROOT 已设置),若已在 hello 目录中,可直接执行 go install
  • 不含 main 或 init 函数的代码,将打包成 .a 文件,作为库文件安装到 pkg 目录下(目录结构与源码对应),以 import github.com/kt10/xxx 的形式在其它代码中使用
  1. Go 程序都是静态链接的,可不依赖库文件独立运行
  2. 可独立运行的 Go 程序都必须 package main
  3. 系统范围内的 package 名称可重复,只要 import 导入的功能模块路径不重复即可
  4. 下载安装远程仓库中的包:  go get github.com/golang/example/hello
原文地址:https://www.cnblogs.com/hadex/p/6514138.html