go语言工程结构_Golang

Go是一门推崇软件工程理念的编程语言。

Go的代码必须放在工作区中。工作区其实就是一个对应于特定工程的目录,它应该包含三个子目录: src 用于以代码包的形式组织并保存Go源码文件。应该分为三类:库源码文件、命令源码文件、测试源码文件。
pkg 用于存放由go install命令构建安装后的代码包(库源码文件)的“.a"归档文件。与GOROOT目录下的pkg功能类似,区别在于,工作目录中的pkg目录专门用来存放用户代码的归档文件。 bin 在通过go install命令完成安装之后,保存由Go命令源码文件生成的可执行文件。

ps:所谓命令源码文件,就是可以独立运行,可被go build或go install命令转换成可执行文件。库源码文件指某个代码包中的普通源码文件。

设置GOPATH

复制代码 代码如下:

$vim /etc/profile export GOPATH=$HOME/golang/lib:$HOME/golang/learngo
$source /etc/profile

$HOME/golang/lib用于存放第三方代码库(go get命令获得)
$HOME/golang/learngo 用于存放学习代码

以上就是本文的全部内容了,希望大家能够喜欢。

时间: 2024-08-24 04:36:27

go语言工程结构_Golang的相关文章

一步步教你编写可测试的Go语言代码_Golang

第一个测试 "Hello Test!" 首先,在我们$GOPATH/src目录下创建hello目录,作为本文涉及到的所有示例代码的根目录. 然后,新建名为hello.go的文件,定义一个函数hello() ,功能是返回一个由若干单词拼接成句子: package hello func hello() string { words := []string{"hello", "func", "in", "package&q

五步让你成为GO 语言高手_Golang

Francesc (@francesc) 是 Go 核心团队的一员, 是提倡 Google Cloud 平台的开发者. 他是一个编程语言的爱好者, Google的技术指导大师, Go tour的创造者之一. 这个讨论的灵感来自于另一个 Raquel Vélez 在 JSConf. Slides 的讨论,这个讨论已经发到了这里. Sourcegraph 是下一代编程协作工具, 用于搜索, 探索, 和审查代码. 我们参加GopherCon India 来分享我们是怎样使用 Go 并学习别人是怎样使用

go语言实现简单http服务的方法_Golang

本文实例讲述了go语言实现简单http服务的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "flag"     "log"     "net/http"     "text/template" ) var addr = flag.String("addr", ":1718", "http service

go语言简单网络程序实例分析_Golang

本文实例分析了go语言简单网络程序.分享给大家供大家参考.具体分析如下: 服务端代码如下: 复制代码 代码如下: package main import (     "net"     "os" ) func serve(s net.Conn) {     var buf [1024]byte     for {         n, err := s.Read(&buf)         if err != nil || n == 0 {         

Go语言Echo服务器的方法_Golang

本文实例讲述了Go语言Echo服务器的方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import (     "net"     "io" ) func main() {     serv, e := net.Listen("tcp", ":12345")     if e != nil {         panic(e)     }     defer serv.Close()  

Go语言调用其它程序并获得程序输出的方法_Golang

本文实例讲述了Go语言调用其它程序并获得程序输出的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import (     "exec" // "os/exec" in go1     "fmt" ) func main(){     cmd := exec.Command("ls", "-l")     buf, err := cmd.Output()   

Go语言中关闭带缓冲区的频道实例分析_Golang

本文实例分析了Go语言中关闭带缓冲区的频道.分享给大家供大家参考.具体分析如下: Go语言提供了两种频道,带缓冲区和不带缓冲区的.不带缓冲区的频道,发送和接收是同步的,必须接收端接收了消息,发送端才能从发送调用中解脱.带缓冲区的频道,在缓冲区满之前,发送和接收是异步的,发送端的发送操作只保证把消息放入缓冲区. Go的频道是可以关闭的,关闭频道的目的是让接收端知道不会再有消息从这个频道进入,我们可能会用某个频道的关闭来表示某种状态的终结. 当我们关闭一个带缓冲区的频道时,如果缓冲区中还有消息,接收

Go语言中的指针运算实例分析_Golang

本文实例分析了Go语言中的指针运算方法.分享给大家供大家参考.具体分析如下: Go语言的语法上是不支持指针运算的,所有指针都在可控的一个范围内使用,没有C语言的*void然后随意转换指针类型这样的东西.最近在思考Go如何操作共享内存,共享内存就需要把指针转成不同类型或者对指针进行运算再获取数据. 这里对Go语言内置的unsafe模块做了一个实验,发现通过unsafe模块,Go语言一样可以做指针运算,只是比C的方式繁琐一些,但是理解上是一样的. 下面是实验代码: 复制代码 代码如下: packag

Go语言共享内存读写实例分析_Golang

本文实例分析了Go语言共享内存读写的方法.分享给大家供大家参考.具体分析如下: 前面分析了Go语言指针运算和内嵌C代码的方法,做了一个Go语言共享内存读写的实验. 先大概说下什么是共享内存.我们知道不同进程见的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块.共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制. 共享内存用到的是系统提供的mm