拾遗: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 的形式在其它代码中使用
- Go 程序都是静态链接的,可不依赖库文件独立运行
- 可独立运行的 Go 程序都必须 package main
- 系统范围内的 package 名称可重复,只要 import 导入的功能模块路径不重复即可
- 下载安装远程仓库中的包: go get github.com/golang/example/hello
拾遗:Go 代码结构的更多相关文章
- 【Learning Python】【第四章】Python代码结构(一)
这一章的主旨在于介绍python的代码结构 缩进 在很多的编程语言中,一般{}用于控制代码块,比如以下的一段C代码 if(var <= 10) { printf("....." ...
- 《OOC》笔记(4)——自动化地将C#代码转化为C代码(结构版)
<OOC>笔记(4)——自动化地将C#代码转化为C代码(结构版) 我在<C表达面向对象语言的机制——C#版>中已经说明了从C#到C的转换方法.这次看<OOC>也是想 ...
- To IOC,代码结构演变的随想
代码结构演变 项目开始阶段 需求: 提供一个系统,可以在新春佳节之际以邮件的形式给员工发送新春祝福. 开发人员: 张三 版本一 string msg = "新年快乐!过节费5000.&quo ...
- CEF3开发者系列之工程和代码结构
CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去.它的设计思想就是易用且兼顾性能. CEF3支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去.它的 ...
- storm源码之storm代码结构【译】【转】
[原]storm源码之storm代码结构[译] 说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...
- atitit js 开发工具 ide的代码结构显示(func list) outline总结
atitit js 开发工具 ide的代码结构显示(func list) outline总结 eclips环境::4.3.1 #-------需要一个js开发工具,可以显示outline或者代码结构显 ...
- PHPWind 8.7中代码结构与程序执行顺序
pw9在此不谈,他是完全重构的作品,是完全MVC下的体系.当然,其中很多东西在PW8.7下已经可见端倪. 主要代码结构 1. 以现代的观点,PW是多入口应用模式,程序根目录下的文件几乎都是入口: 2. ...
- Javascript的一种代码结构方式——插件式
上几周一直在做公司的webos的前端代码的重构,之中对javascript的代码进行了重构(之前的代码耦合严重.拓展.修改起来比较困难),这里总结一下当中使用的一种代码结构——插件式(听起来怎么像独孤 ...
- django-cms 代码研究(五)深入(代码结构)
前言: 前戏已经做得比较充分了,下面我们开始步入正题. 代码结构: cms |--admin (猜测是admin界面的二次开发和改良) |--cache (猜测是缓存机制的处理) |--extensi ...
- 【原】storm源码之storm代码结构【译】
说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...
随机推荐
- 安全服务——CVE中CVSS相关指标介绍
目录 CVSS相关指标 一.CVSS是什么 二.指标内容 1.Base指标 2.Temporal指标 3.Environmental指标 三.Base, Temporal, Environmental ...
- git 上传你代码到码云
转载自:http://blog.csdn.net/u013776188/article/details/60867437
- jmeter beanshell 变量传递
如果写成这样会报错: ${__BeanShell(${__threadNum}*2,ToatlAmount)}; ${__BeanShell(${__Random(1,99999,)},DayNum) ...
- 在egg中配置cors
在egg中配置 cors(跨域) 第一步,安装 egg-cors npm i egg-cors --save 第二步,配置 cors 在config/plugin.js文件下添加: exports.c ...
- texinfo - 软件文档系统
DESCRIPTION 描述 Texinfo 是一种文档系统,使用单一的源文件来产生在线文档以及可打印的输出.它主要用于书写软件使用手册. 要查看 Texinfo 语言和相关工具的全面描述,请查看 T ...
- 第一章 Xshell5评估期已过问题
您的Xshell评估期已过.请访问我们的在线商店购买Xshe许可证.产品密钥将通过电子邮件发送给您. 解决方法 一.进入下载网站 https://www.netsarang.com/zh/thank- ...
- 解决虚拟机克隆的linux系统ip无法正常使用问题
当我们克隆centos虚拟机无法正常获取IP地址,重启网卡也提示Bringing up interface eth0: Device eth0 does not seem to be present ...
- 【扯淡篇】SDOI2018丶一轮游丶记
--某不知名蒟蒻的SDOI2018 R1退役场游记&&OI生涯总结 真的是混不下去了. 进队是不可能的, 进队是不可能进队的. 这辈子不可能进队的. 刷题又不会刷 就是靠打表找规律这种 ...
- Codeforces 348D DP + LGV定理
题意及思路:https://www.cnblogs.com/chaoswr/p/9460378.html 代码: #include <bits/stdc++.h> #define LL l ...
- anyka安凯微电子
http://www.anyka.com/ 幼教机