1.golang项目结构

1.二进制可执行项目的结构

bash 复制代码
tree .                                                             [14:52:58]
.
├── cmd
│   ├── app1
│   │   └── main.go
│   └── app2
│       └── main.go
├── go.mod
└── pkg
    ├── lib1
    │   └── lib1.go
    └── lib2
        └── lib2.go

7 directories, 5 files

1.cmd目录

用来存放可执行程序的main文件,即用go build指定的文件,如果有多个可执行文件的话细分为多个app文件,存放多个可执行文件,例如app1中的main是一个client程序,app2中的main是一个server程序。

2.pkg目录

用来存放项目依赖的一些包,比如cmd中的main需要依赖的代码包,需要注意的是该目录下的代码也可以被外部引用,是项目导出包的一个集合。

2.库项目的结构

库项目的作用是对外提供使用,所以不需要存放二进制main文件的cmd目录,去掉cmd目录即可。

3.internal目录

如果有些包不想被外部引用到,可以将想隐藏的包放在项目根目录下的internal目录中,internal目录下的包外部是无法引用的,但是本项目下的代码是可以访问的。

相关推荐
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
rookieﻬ°2 小时前
PHP框架漏洞
开发语言·php
炸膛坦客2 小时前
单片机/C/C++八股:(二十)指针常量和常量指针
c语言·开发语言·c++
兑生3 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
颜酱3 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
炸膛坦客4 小时前
单片机/C/C++八股:(十九)栈和堆的区别?
c语言·开发语言·c++
零雲4 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试
小码哥_常4 小时前
Java后端定时任务抉择:@Scheduled、Quartz、XXL - Job终极对决
后端
uzong4 小时前
Skill 被广泛应用,到底什么是 Skill,今天详细介绍一下
人工智能·后端·面试
Jay_Franklin4 小时前
Quarto与Python集成使用
开发语言·python·markdown