#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

拾遗:Go 代码结构的更多相关文章

  1. 【Learning Python】【第四章】Python代码结构(一)

    这一章的主旨在于介绍python的代码结构 缩进 在很多的编程语言中,一般{}用于控制代码块,比如以下的一段C代码 if(var <= 10) { printf("....." ...

  2. 《OOC》笔记(4)——自动化地将C#代码转化为C代码(结构版)

    <OOC>笔记(4)——自动化地将C#代码转化为C代码(结构版) 我在<C表达面向对象语言的机制——C#版>中已经说明了从C#到C的转换方法.这次看<OOC>也是想 ...

  3. To IOC,代码结构演变的随想

    代码结构演变 项目开始阶段 需求: 提供一个系统,可以在新春佳节之际以邮件的形式给员工发送新春祝福. 开发人员: 张三 版本一 string msg = "新年快乐!过节费5000.&quo ...

  4. CEF3开发者系列之工程和代码结构

    CEF支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去.它的设计思想就是易用且兼顾性能. CEF3支持一系列的编程语言和操作系统,并且能很容易地整合到新的或已有的工程中去.它的 ...

  5. storm源码之storm代码结构【译】【转】

    [原]storm源码之storm代码结构[译]  说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正 ...

  6. atitit js 开发工具 ide的代码结构显示(func list) outline总结

    atitit js 开发工具 ide的代码结构显示(func list) outline总结 eclips环境::4.3.1 #-------需要一个js开发工具,可以显示outline或者代码结构显 ...

  7. PHPWind 8.7中代码结构与程序执行顺序

    pw9在此不谈,他是完全重构的作品,是完全MVC下的体系.当然,其中很多东西在PW8.7下已经可见端倪. 主要代码结构 1. 以现代的观点,PW是多入口应用模式,程序根目录下的文件几乎都是入口: 2. ...

  8. Javascript的一种代码结构方式——插件式

    上几周一直在做公司的webos的前端代码的重构,之中对javascript的代码进行了重构(之前的代码耦合严重.拓展.修改起来比较困难),这里总结一下当中使用的一种代码结构——插件式(听起来怎么像独孤 ...

  9. django-cms 代码研究(五)深入(代码结构)

    前言: 前戏已经做得比较充分了,下面我们开始步入正题. 代码结构: cms |--admin (猜测是admin界面的二次开发和改良) |--cache (猜测是缓存机制的处理) |--extensi ...

  10. 【原】storm源码之storm代码结构【译】

    说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...

随机推荐

  1. 安全服务——CVE中CVSS相关指标介绍

    目录 CVSS相关指标 一.CVSS是什么 二.指标内容 1.Base指标 2.Temporal指标 3.Environmental指标 三.Base, Temporal, Environmental ...

  2. git 上传你代码到码云

    转载自:http://blog.csdn.net/u013776188/article/details/60867437

  3. jmeter beanshell 变量传递

    如果写成这样会报错: ${__BeanShell(${__threadNum}*2,ToatlAmount)}; ${__BeanShell(${__Random(1,99999,)},DayNum) ...

  4. 在egg中配置cors

    在egg中配置 cors(跨域) 第一步,安装 egg-cors npm i egg-cors --save 第二步,配置 cors 在config/plugin.js文件下添加: exports.c ...

  5. texinfo - 软件文档系统

    DESCRIPTION 描述 Texinfo 是一种文档系统,使用单一的源文件来产生在线文档以及可打印的输出.它主要用于书写软件使用手册. 要查看 Texinfo 语言和相关工具的全面描述,请查看 T ...

  6. 第一章 Xshell5评估期已过问题

    您的Xshell评估期已过.请访问我们的在线商店购买Xshe许可证.产品密钥将通过电子邮件发送给您. 解决方法 一.进入下载网站 https://www.netsarang.com/zh/thank- ...

  7. 解决虚拟机克隆的linux系统ip无法正常使用问题

    当我们克隆centos虚拟机无法正常获取IP地址,重启网卡也提示Bringing up interface eth0:  Device eth0 does not seem to be present ...

  8. 【扯淡篇】SDOI2018丶一轮游丶记

    --某不知名蒟蒻的SDOI2018 R1退役场游记&&OI生涯总结 真的是混不下去了. 进队是不可能的, 进队是不可能进队的. 这辈子不可能进队的. 刷题又不会刷 就是靠打表找规律这种 ...

  9. Codeforces 348D DP + LGV定理

    题意及思路:https://www.cnblogs.com/chaoswr/p/9460378.html 代码: #include <bits/stdc++.h> #define LL l ...

  10. anyka安凯微电子

    http://www.anyka.com/   幼教机