Go语言学习 二 概念篇:Go代码的组织结构及基本概念介绍

本文介绍了Go语言代码的组织结构,包括工作空间、GOPATH环境变量、导入路径和内部目录的概念。工作空间包含src、pkg和bin目录,每个仓库可以有多个包,包由导入路径决定。GOPATH指定了代码的位置,而模块的引入改变了GOPATH的作用。内部目录的代码只能被其父目录树中的代码导入,供应商目录用于本地依赖的管理。理解这些基础概念对于Go语言的学习至关重要。
摘要由CSDN通过智能技术生成

本文最初发表在我的个人博客,欢迎查看原文:
blog.favorstack.io/golang


概览

  • Go程序员通常会将所有Go代码保存在一个工作区中。
  • 工作空间可以包含多个版本控制仓库(比如,Git仓库)。
  • 每个仓库可以包含一个或多个包。
  • 每个包由一个目录中的一个或多个Go源文件组成。
  • 包目录的的路径决定了其导入路径。

使用过Eclipse的同学可能觉得这跟Eclipse的工作空间有点像,但是跟Idea反差就很大。

工作空间(workspace)

Go的工作空间就是一个目录层次结构,其根目录下主要有以下几个子目录:

  • src 包含Go的源代码文件
  • bin 包含可执行命令文件
  • pkg 包含安装包的对象,按系统架构区分子目录

src 子目录通常包含多个版本控制仓库(比如git或hg),来追踪一个或多个源代码包的开发。该目录同样定义了导入路径或可执行命令的名称。

pkg 保存安装包的对象,在pkg下,每个目标操作系统和系统架构对都有自己的子目录(pkg/GOOS_GOARCH)。

假设工作空间路径为MyDIR,在MyDIR/src/foo/bar中包含源代码的包,可以导入为"foo/bar",并将其编译形式安装到"MyDIR/pkg/GOOS_GOARCH/foo/bar.a"

bin 目录保存已编译好的命令(可执行文件)。每个命令(可执行文件)都以其源目录命名,但仅以最后一个元素(包)命名,而不是整个路径。也就是说,源代码在MyDIR/src/foo/hello下的命令,会被安装到MyDIR/bin/hello,而不是MyDIR/bin/foo/hello。去掉了"foo/"前缀,以便可以将MyDIR/bin添加到PATH来获取已安装的命令。如果设置了GOBIN环境变量,则命令将安装到它命名的目录,而不是MyDIR/bin。注意,GOBIN必须是绝对路径。

go tool构建二进制文件并将其默认安装到bin目录。

下面是一个Go工作空间常见的例子:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值