文档章节

GO 使用开源的数据结构

老汉-憨憨
 老汉-憨憨
发布于 2017/05/13 09:41
字数 636
阅读 43
收藏 0

1.  平台 Windows, 安装 git

2. 安装 go 1.3+

3. 查看 GOPATH 信息

C:\>go env
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=C:\Users\Administrator\go
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2

4. 下载代码,测试代码

Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>cd C:\Users\Administrator\go

C:\Users\Administrator\go>go get github.com/Workiva/go-datastructures/...

C:\Users\Administrator\go>go get -u github.com/Workiva/go-datastructures/...

C:\Users\Administrator\go>cd src

C:\Users\Administrator\go\src>cd github.com

C:\Users\Administrator\go\src\github.com>cd Workiva

C:\Users\Administrator\go\src\github.com\Workiva>cd go-datastructures

C:\Users\Administrator\go\src\github.com\Workiva\go-datastructures>go get -t -u
./...

C:\Users\Administrator\go\src\github.com\Workiva\go-datastructures>go test ./...

?       github.com/Workiva/go-datastructures    [no test files]
ok      github.com/Workiva/go-datastructures/augmentedtree      2.126s
ok      github.com/Workiva/go-datastructures/batcher    1.363s
ok      github.com/Workiva/go-datastructures/bitarray   1.581s
ok      github.com/Workiva/go-datastructures/btree/immutable    15.153s
ok      github.com/Workiva/go-datastructures/btree/palm 1.064s
ok      github.com/Workiva/go-datastructures/btree/plus 1.783s
ok      github.com/Workiva/go-datastructures/cache      0.820s
?       github.com/Workiva/go-datastructures/common     [no test files]
ok      github.com/Workiva/go-datastructures/fibheap    1.669s
ok      github.com/Workiva/go-datastructures/futures    0.614s
ok      github.com/Workiva/go-datastructures/hashmap/fastinteger        1.228s
ok      github.com/Workiva/go-datastructures/list       2.105s
?       github.com/Workiva/go-datastructures/mock       [no test files]
ok      github.com/Workiva/go-datastructures/numerics/hilbert   0.640s
ok      github.com/Workiva/go-datastructures/numerics/optimization      1.128s
ok      github.com/Workiva/go-datastructures/queue      0.696s
ok      github.com/Workiva/go-datastructures/rangetree  1.715s
ok      github.com/Workiva/go-datastructures/rangetree/skiplist 1.274s
?       github.com/Workiva/go-datastructures/rtree      [no test files]
ok      github.com/Workiva/go-datastructures/rtree/hilbert      1.655s
ok      github.com/Workiva/go-datastructures/set        0.662s
ok      github.com/Workiva/go-datastructures/slice      0.761s
ok      github.com/Workiva/go-datastructures/slice/skip 1.057s
ok      github.com/Workiva/go-datastructures/sort       1.279s
ok      github.com/Workiva/go-datastructures/threadsafe/err     0.714s
ok      github.com/Workiva/go-datastructures/tree/avl   1.533s
ok      github.com/Workiva/go-datastructures/trie/ctrie 13.429s
ok      github.com/Workiva/go-datastructures/trie/dtrie 0.713s
ok      github.com/Workiva/go-datastructures/trie/xfast 1.482s
ok      github.com/Workiva/go-datastructures/trie/yfast 1.070s

C:\Users\Administrator\go\src\github.com\Workiva\go-datastructures>

5. 简单使用

打开 ”LiteIDE“ ,  文件 -> 打开目录 -> 选择 "C:\Users\Administrator\go\src" 下的 github.com 目录

效果如下:

右击 LiteIDE 中的  "github.com" 选择  “新建目录” 输入 "src" -> 点击“新建”

右击 “src” 目录 选择 “新建文件”输入 “main.go” 点击 “新建并编辑”

测试代码如下:

package main

import (
	"fmt"

	"github.com/Workiva/go-datastructures/list"
)

func main() {
	ll := list.Empty
	fmt.Println(ll.IsEmpty())

	ll = ll.Add(10)
	ll = ll.Add(12)
	ll = ll.Add(14)
	fmt.Println(ll.Length())

	var i uint
	for i = 0; i < ll.Length(); i++ {
		item, ok := ll.Get(i)
		if ok {
			fmt.Println("item(", i, ") = ", item)
		}
	}
	fmt.Println("------------------------------------")

	tmp, err := ll.Insert("Hello World!", ll.Length())
	if err != nil {
		fmt.Println("list insert err: ", err)
	} else {
		ll = tmp
	}

	for i = 0; i < ll.Length(); i++ {
		item, ok := ll.Get(i)
		if ok {
			fmt.Println("item(", i, ") = ", item)
		}
	}
	fmt.Println("------------------------------------")
}

右击 “src” 选择 “锁定编译目录” 编译运行,输出如下:

true
3
item( 0 ) =  14
item( 1 ) =  12
item( 2 ) =  10
------------------------------------
item( 0 ) =  14
item( 1 ) =  12
item( 2 ) =  10
item( 3 ) =  Hello World!
------------------------------------
成功: 进程退出代码 0.

 

© 著作权归作者所有

老汉-憨憨
粉丝 20
博文 322
码字总数 68382
作品 0
深圳
程序员
私信 提问
【开源访谈】奇虎 360 陈宗志:开源能让项目走得更长久

Pika 是 360 DBA 和基础架构组联合开发的类 Redis 存储系统,完全支持 Redis 协议,用户不需要修改任何代码,就可以将服务迁移至 Pika。在 Pika 的开发过程中,有哪些值得我们学习和借鉴的地...

达尔文
2017/05/03
2.9K
9
Redis 开源文档《Redis设计与实现》

Redis是运用比较广泛的NoSQL产品之一,目前的稳定版本是2.6.10,包括Github、Instagram、Blizzard、新浪微博等都在产品中大量使用了Redis。其代码基于BSD协议开源,整个项目代码量只有2万多行...

桂荣
2013/03/14
6.9K
21
怎么看待程序员普遍缺乏数据结构和算法的知识?

在很多程序员看来,数据结构,算法这一类的东西感觉没用,在实践中都不常用,所以都会很忽视这类内容,但是在很多公司看来,尤其是大公司看来数据结构和算法这种东西确实最有用,而且经常在笔...

Java大蜗牛
2018/07/17
0
0
C++模板库--C++ B-tree

这是一个google开源的C++模板库,实现了基于B-tree数据结构的有序内存容器。类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btreemap、btreeset、btreemultimap和btreemu...

匿名
2013/02/05
2.1K
1
[原创]JWFDv0.96开源工作流引擎设计---XMLTO数据库解析过程说明

JWFDv0.96开源工作流引擎设计 ---XML to 数据库解析过程说明 注:这篇文章中所使用的“函数”就是指JAVA语言中的方法 作者 comsci 2011.4.25 四川。成都 简要说明: 实际上,用户通过JWFD流程...

comsci
2011/05/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins定时构建时间设置

举几个例子: 每隔5分钟构建一次 H/5 * * * * 每两小时构建一次 H H/2 * * * 每天中午12点定时构建一次 H 12 * * * 每天下午18点定时构建一次 H 18 * * * 在每个小时的前半个小时内的每10分钟...

shzwork
13分钟前
0
0
Myeclipse 问题记录

1. 创建maven聚合(pom) 工程 ,子项目会带上 maven app这些文字,删掉后会导致工程文件在working set里消失,解决办法:右键子项目 import as project 解决问题。...

无敌小学僧
40分钟前
0
0
《Chez Scheme初探》定义变量、递归、测试性能、并列代码编写

普通fib函数 (define (fact n) (if (= n 1) 1 (* n (fact (- n 1)) ) )) 尾递归fib函数 (define (fact-tail n) (fact-rec n n))(defi......

flash胜龙
40分钟前
0
0
任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击!

任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击! 如果你是华为的老板,看到一条传遍网络的“美国封锁华为”、“华为禁令”的消息,你会怎么办? 昨天上午,华为创始...

forespider
今天
2
0
Java HTTP 组件库选型看这篇就够了

最近项目需要使用 Java 重度调用 HTTP API 接口,于是想着封装一个团队公用的 HTTP client lib. 这个库需要支持以下特性: 连接池管理,包括连接创建和超时、空闲连接数控制、每个 host 的连...

Java面经
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部