go[6]-包结构

标准目录为src、bin、pkg三个目录。
GOPATH可以指定几个目录,排在列表最前面的比当前工作空间优先级更高。go get默认会下载到第一个工作空间里面。备注:unix-like使用冒号分隔,windows使用;分割。
GOROOT指定工具链和标准库的存放位置。

导入包

如果是系统级的包的导入

import "net/http"
import osx "github.com/apple/osx/lib"
import _ "github.com/qyuhen/test"
import "../lib" // 相对路径引入

组织结构

包由一个或多个保存在同一目录下的源文件组成。
包名和目录名称并无关系,不要求保持一致,举个例子,leaf里面的go的库。目录名为go,但是里面的包使用的名称为g。不影响使用,在import的时候是写go,语句里面写g。

"github.com/name5566/leaf/go"
d := g.New(10)

同一目录下的包名需要完全一致。下列有几个特殊的包名:

main :可执行入口
all: 标准库以及 GOPATH中能找到的所有包。
std,cmd:标准库工具链
documentations:存储文档信息、无法导入。

权限

包内成员可以互相访问。只有大写字母的能被包外访问。当然也能通过unsafe.Pointer方式来反出数据并且调用。

初始化

func init() {
} 

内部包

将内部模块分离出来,单独包的形式维护。只能被父目录下的包访问,命名为internal目录下的包。

依赖管理

主要是解决三方依赖库文件冲突问题。这个概念是和内部包刚好相反,vendor目录是提供给当前工作目录,通用的目录。
注意:vendor比标准库有嫌隙更高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值