golang ctrie demo
下载ctrie:
go get -t github.com/Workiva/go-datastructures/trie/ctrie
测试demo1:
package main import (
"fmt"
"github.com/Workiva/go-datastructures/trie/ctrie"
"strconv"
) type dataStruct struct {
id int64
x int64
y int64
a string
b string
} func main() {
rect1 := &dataStruct{, , , "sss", "rrr"}
rect2 := &dataStruct{, , , "aaa", "xxx"}
rect3 := &dataStruct{, , , "bbb", "yyy"} ctrie := ctrie.New(nil)
key1 := []byte(strconv.Itoa(int(rect1.id)))
ctrie.Insert(key1, rect1) key2 := []byte(strconv.Itoa(int(rect2.id)))
ctrie.Insert(key2, rect2) key3 := []byte(strconv.Itoa(int(rect3.id)))
ctrie.Insert(key3, rect3) key := []byte(strconv.Itoa(int(rect3.id))) val, exists := ctrie.Lookup(key)
if exists {
data := val.(*dataStruct)
fmt.Println(data.a)
ctrie.Remove(key)
} val, exists = ctrie.Lookup(key)
if !exists {
fmt.Println("Not find")
} return
}
运行结果:
[root@wangjq ctrie]# go run main.go
bbb
Not find
测试demo2:
package main import (
"fmt"
"github.com/Workiva/go-datastructures/trie/ctrie"
"bytes"
) type dataStruct struct {
id int64
x int64
y int64
a string
b string
} func main() {
rect := &dataStruct{, , , "sss", "rrr"} buf := &bytes.Buffer{}
buf.WriteString("")
key := buf.Bytes() ctrie := ctrie.New(nil)
ctrie.Insert(key, rect) buf_tmp := &bytes.Buffer{}
buf_tmp.WriteString("")
key_tmp := buf_tmp.Bytes() val, exists := ctrie.Lookup(key_tmp)
if exists {
data := val.(*dataStruct)
fmt.Println(data.a)
ctrie.Remove(key_tmp)
} val, exists = ctrie.Lookup(key_tmp)
if !exists {
fmt.Println("Not find")
} return
}
运行结果:
[root@ctrie]# go run demo.go
sss
Not find
golang ctrie demo的更多相关文章
- golang 并发demo 写入 redis
原文链接:golang 并发demo 写入 redis 源代码: package main import ( "fmt" "runtime" "str ...
- win7环境下,golang thrift demo代码编译不通过
用官方的教程代码:http://thrift.apache.org/tutorial/go 用网友提供的代码:Golang RPC 之 Thrift 都出现如下情况 状况1: 编辑器中就会提醒 Can ...
- golang grpc demo
1.grpm 安装: git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc 2.proto, ...
- golang rpc demo
RPC工作流程图 1.调用客户端句柄:执行传送参数 2.调用本地系统内核发送网络消息 3.消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 7 ...
- golang mysql demo
Go操作Mysql数据库 使用Go操作MySQL等数据库,一般有两种方式:一是使用database/sql接口,直接在代码里硬编码sql语句:二是使用gorm,即对象关系映射的方式在代码里抽象的操作数 ...
- Golang 对接宝付、通联、富友金账户...填坑记
一.宝付私钥加密,公钥解密 由于对RSA加密解密原理不是很熟悉,宝付也没有Golang的Demo提供.Go语言库里一般都是私钥解密.公钥加密,或者私钥签名.公钥验签.宝付需要反过来,这里也到好找到了h ...
- Golang : flag 包简介
在 Golang 程序中有很多种方法来处理命令行参数.简单的情况下可以不使用任何库,直接处理 os.Args:其实 Golang 的标准库提供了 flag 包来处理命令行参数:还有第三方提供的处理命令 ...
- 吾八哥学k8s(二):golang服务部署到kubernetes
本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容.纯新手入门方式,生产服务需要完整的CI/CD流程来支持. golang服务代码 ...
- elixir grpc 试用
备注: elixir grpc 封装测试 1. 安装 a. 安装 protoc 参考相关文档,比较简单 b. 安装elixir grpc 插件 protoc-gen-elixir 同时配置环 ...
随机推荐
- Error: no such table: device;的问题的解决,去掉表名device后面的分号;
sqlite> .mode csvsqlite> .import device.txt device;Error: no such table: device;sqlite> .im ...
- selenium 破解登录滑块验证码mu
from selenium import webdriverfrom PIL import Imagefrom selenium.webdriver import ChromeOptionsfrom ...
- etcd3.0集群安装
etcd 是一个分布式一致性键值存储,用于共享配置和服务发现,Go编写,并使用 Raft 一致性算法来管理高可用复制日志. 特性 简单:支持curl方式的用户API(http+json)安全:可选ss ...
- 浅谈Mybatis持久化框架在Spring、SSM、SpringBoot整合的演进及简化过程
前言 最近开始了SpringBoot相关知识的学习,作为为目前比较流行.用的比较广的Spring框架,是每一个Java学习者及从业者都会接触到一个知识点.作为Spring框架项目,肯定少不了与数据库持 ...
- 我靠!Semaphore里面居然有这么一个大坑!
这是why的第 59 篇原创文章 荒腔走板 大家好,我是why哥 ,欢迎来到我连续周更优质原创文章的第 59 篇. 上周写了一篇文章,一不小心戳到了大家的爽点,其中一个转载我文章的大号,阅读量居然突破 ...
- Flink的流处理API(二)
一.Environment 1,getExecutionEnvironment getExecutionEnvironment会根据查询运行的方式决定返回什么样的运行环境,是最常用的一种创建执行环境的 ...
- 2017面向对象程序设计(Java)第十三周助教工作总结
时间飞逝,本学期即将接近尾声.不知不觉同学们已经学习java十三个星期了,想必同学们对Java课程体系及内容有了更加深入的理解,也应该摸索出了一套适用于自己的学习方法. 下面我对上周工作做以简单总结: ...
- Android 菜单的使用
有时间就随笔记录自己遇到的问题和所学的知识哈. 这是对本牛崽知识的提升也可以给其他牛牛们来点鸡汤和开胃菜. 菜单Menu的创建 首先menu是属于布局的嘛,所以嘞,咱们得在res(也就是布局资源)创建 ...
- 嵌入式linux下获取flash分区大小
在嵌入式系统中,由于flash存储空间有限,或者是存储数据,实现数据的循环删除,需要获取到分区的使用情况,可以通过系统下的函数statfs来获取使用情况:实现代码如下: flashInfo.cpp # ...
- 打开IDEA后tomcat不能用,Cannot load project of unknown project type,无法加载类或者项目
这一问题在网络中有比较统一的解决方法,我这个也是按这个方法解决的. 问题出现的前提和原因: 一个运行正常项目,我关闭后第二天打开发现tomcat不能用了. 解决方法: 我查了一下,这是一个IDEA软件 ...