Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang 之 工程结构大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

综述

  • 典型地,Go 将所有 Go 代码都存放到单一的 workspace 中(存放在单一的一个目录中).

  • 一个 workspace 包含多个版本控制仓库(version control repositories,例如 Git),即一个 workspace 包含多个 go 工程.

  • 每个版本控制仓库(工程) 包含一个或多个包

  • 一个包包含一个或多个 Go 源文件

  • 包的路径决定了它的 import 路径.

关于 workspace

一个 workspace 就是一个目录的层次结构,并且在顶层目录中包含如下三个子目录:

  • src,包含多个版本控制仓库(即 工程).

  • pkg,包含编译后的 package 对象

  • bin,包含编译后的可执行文件.

一个典型的 workspace 如下:

bin/
    Hello                          # command executable
    outyet                         # command executable
pkg/
    linux_amd64/
        github.com/golang/example/
            Stringutil.a           # package object
src/
    github.com/golang/example/
        .git/                      # Git repository Metadata
        Hello/
            Hello.go               # command source
        outyet/
            main.go                # command source
            main_test.go           # test source
        Stringutil/
            reverse.go             # package source
            reverse_test.go        # test source
    golang.org/x/image/
        .git/                      # Git repository Metadata
        bmp/
            reader.go              # package source
            writer.go              # package source
    ... (many more repositories and packages omitted) ...

上面的 workspace 包含了两个仓库(example 和 imagE). example 仓库中有两个 command(Hello 和 outyet) 和一个库(Stringutil). image 仓库包含 bmp 包和其他的文件.

关于 GOPATH

GOPATH 环境变量指定了 workspace 的目录,我们仅仅指定这个环境变量就可以进行 Go 的开发了.

关于 import path

一个 import path 是一个唯一标识一个包的字符串. 一个包的 import path 由这个包在 workspace 中的路径决定,或者与这个包所在的远程仓库有关.
如果代码是使用代码仓库管理(例如 Github),那么 Go 建议使用仓库名作为包的基路径. 例如 github.com/yongshun 是包的基路径,我们如果需要创建一个名为 Hello 的工程,那么它的包路径就是 github.com/yongshun/Hello

关于包名

一个 go 文件中,第一行代码必须是一个包定义:

package name

注意,根据 GO 规定,包名是一个包的 import path 的最后一个元素,即如果 import path 是 "com/xys/Hello",则包名必须是 Hello.
可执行的 command 的包名必须是 main.
即使是链接到同一个 binary 中,Go 也不要求所有的包名是唯一的,即链接一个 binary 中的包名可以是重复的,只要包对应的 import path 是唯一的即可.

大佬总结

以上是大佬教程为你收集整理的Golang 之 工程结构全部内容,希望文章能够帮你解决Golang 之 工程结构所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。