Go入门学习笔记一:工程结构

  • 原创
  • 作者:程序员三丰
  • 发布时间:2021-07-13 10:03
  • 浏览量:675
一般的编程语言往往对工程(项目)的目录结构是没有什么规定的,但是Go语言却在这方面做了相关规定。项目的构建主要是靠 GOPATH来实现的。这么说吧,如果想要构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔。如果不配置 GOPATH,即使处于同一目录,代码之间也无法通过绝对路径相互调用。

Go语言工程结构

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

  • src目录
    • 放置项目和库的源文件。
    • 用于以包(package)的形式组织并存放Go源文件,这里的包与src目录下的每个子目录是一一对应的。
    • 例如:若一个源文件被声明属于log包,那么它应当保存在src/log目录中。
    • 包是Go语言管理代码的重要机制。Go源文件中第一段有效代码必须是 Package <包名>的形式。
  • pkg目录
    • 放置编译后生成的包/库的归档文件。
    • 用于存放通过Go install命令安装某个包后的归档文件。归档文件是指那些名称以“.a”结尾的文件。
    • 编译和安装项目代码的过程一般会以代码包为单位进行,比如log包被编译安装后,将生成一个名为log.a的归档文件,并且存放在当前项目的pkg目录下。
  • bin目录
    • 放置编译后生成的可执行文件。
    • 与pkg目录类似,在通过go install命令安装完成后,保存由Go命令源文件生成的可执行文件。
    • 在类Unix操作系统下,这个可执行文件的名称与命令源文件的文件名相同。
    • 在Windows操作系统下,这个可执行文件的名称则是命令源文件的文件名加.exe后缀。

源文件

  • 命令源文件
    • 如果一个Go源文件被声明属于main包,并且该文件中包含main函数,则它就是命令源文件。
    • 命令源文件属于程序的入口,可以通过Go语言的go run 命令运行或通过go build命令生成可执行文件。
  • 库源文件
    • 库源文件则是指存在于某个包中的普通源文件,并且源文件中不包含main函数。
  • 不管是命令源文件还是库源文件,在同一个目录下的所有源文件,其所属包的名称必须是一致的。
声明:本文为原创文章,51blog.xyz和作者拥有版权,如需转载,请注明来源于51blog.xyz并保留原文链接:https://mp.51blog.xyz/article/9.html

文章归档

推荐文章

buildadmin logo
Thinkphp8 Vue3 Element PLus TypeScript Vite Pinia

🔥BuildAdmin是一个永久免费开源,无需授权即可商业使用,且使用了流行技术栈快速创建商业级后台管理系统。

热门标签

PHP ThinkPHP ThinkPHP5.1 Go Mysql Mysql5.7 Redis Linux CentOS7 Git HTML CSS CSS3 Javascript JQuery Vue LayUI VMware Uniapp 微信小程序 docker wiki Confluence7 学习笔记 uView ES6 Ant Design Pro of Vue React ThinkPHP6.0 chrome 扩展 翻译工具 Nuxt SSR 服务端渲染 scrollreveal.js ThinkPHP8.0 Mac webman 跨域CORS vscode GitHub ECharts Canvas