美文网首页
Go包管理

Go包管理

作者: RedHatMe | 来源:发表于2018-12-05 02:02 被阅读0次

PATH配置&&GO命令

PATH
一个是 go的安装path ——GOROOT。
一个是 go的工作目录path —GOPATH。此PATH的目的是方便使用go命令操作编译安装。

export GOROOT=/usr/local/go

export PATH=$PATH:$GOROOT/bin

export GOPATH=/Users/didi/GoProject

export PATH=$PATH:$GOPATH/bin

比如现在的工作目录GoProject结构是

├── bin
├── pkg
└── src
    └── github.com
        └── wangziwei
            └── hello
                └── helloworld.go

那么直接运行 go install github.com/wangziwei/hello/ 则直接生成了二进制可执行文件hello 到 bin下。运行后目录结构如下:

├── bin
│   └── hello
├── pkg
└── src
    └── github.com
        └── wangziwei
            └── hello
                └── helloworld.go

注意一点是:
生成可执行的文件 得有main() 函数 + go install 命令 + 文件中 package main。
(如下:test.go 中 package main)
生成包对象 不需要main() + go install 命令 + 文件中 package 写路径。
(如下:helloworld.go 中 package hello)
go install github.com/wangziwei/hello 编译后 pkg 目录出现hello对象 hello.a。
go install github.com/wangziwei/test 执行后 bin 目录出现test 可执行文件。

├── bin
│   └── test
├── pkg
│   └── darwin_amd64
│       └── github.com
│           └── wangziwei
│               └── hello.a
└── src
    └── github.com
        └── wangziwei
            ├── hello
            │   └── helloworld.go
            └── test
                └── test.go

Go的可执行命令是静态链接的;在运行Go程序时,包对象无需存在。
链接成单个二进制文件的所有包,其包名无需是唯一的,只有导入路径(它们的完整文件名) 才是唯一的。

GO测试

  1. 测试文件和需要测试的包文件放一个路径下
  2. 测试文件 命名格式为 *_test.go
└── src
    └── github.com
        └── wangziwei
            ├── hello
            │   ├── helloworld.go
            │   └── helloworld_test.go

  1. import testing + (t *testing.T)参数 + t.Errorf 显示
package hello
  
import "testing"

func TestReverse(t *testing.T) {
        cases := []struct {
                in, want string
        }{
                {"Hello, world", "dlrow ,olleH"},
                {"Hello, 世界", "界世 ,olleH"},
                {"", ""},
        }
        for _, c := range cases {
                got := PrintHello(c.in)
                if got != c.want {
                        t.Errorf("Reverse(%q) == %q, want %q", c.in, got, c.want)
                }
        }
}
  1. 最后执行 go test github.com/wangziwei/hello 就可以看测试结果了

go 工具使用远程代码库

go 包注释

每个包都应包含一段包注释,即放置在包子句前的一个块注释。对于包含多个文件的包, 包注释只需出现在其中的任一文件中即可。
godoc是一个专门的web服务器。提取注释文字的。

相关文章

  • Go语言代码结构

    包 每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。GO语言中是通过包来对代码进行管理...

  • go http 包练习

    参见:下载包 设置代理妈的,下载包有时能下,有时候就卡住。手动安装包使用 go module 管理包 go-mod...

  • go modules详解

    go modules详解 [TOC] go1.11开始,支持使用go modules管理依赖包. 刚加入的适合尝试...

  • 你离告别GOPATH只差一步

    使用go mod 管理包代替gopath管理 我使用的编辑器是 goland,下面开始goland的go mod设...

  • 【Go语言基础1】运行命令

    1 第一个go程序 写go程序的注意事项: go语言以包作为管理单位 go程序最开始应该声明包 每个程序都必须有一...

  • 理解Go语言包(package)

    1. Go语言包的概念 Go语言使用包来组织源代码的,并实现命名空间的管理,任何一个Go语言程序必须属于一个包,即...

  • Go Get 访问私有库配置

    go module是go语言官方的包管理方式,go get则是获取包的命令,通常,我们可以使用go get git...

  • go-包引用

    最近在学习Go编程,本文简单的叙述如何在Go编程中使用包(包管理)。 和其他大多数语言一样,Go也存在包,并使用p...

  • go get

    命令 go get命令会借助代码管理工具从远程拉取或更新代码包及其依赖包,并自动完成编译和安装。 go get命令...

  • Go语言版本控制及包依赖管理

    传统Go构建以及包依赖管理 Go在构建设计方面深受Google内部开发实践的影响,比如go get的设计就深受 G...

网友评论

      本文标题:Go包管理

      本文链接:https://www.haomeiwen.com/subject/euvbcqtx.html