下载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的更多相关文章

  1. golang 并发demo 写入 redis

    原文链接:golang 并发demo 写入 redis 源代码: package main import ( "fmt" "runtime" "str ...

  2. win7环境下,golang thrift demo代码编译不通过

    用官方的教程代码:http://thrift.apache.org/tutorial/go 用网友提供的代码:Golang RPC 之 Thrift 都出现如下情况 状况1: 编辑器中就会提醒 Can ...

  3. golang grpc demo

    1.grpm 安装: git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc 2.proto, ...

  4. golang rpc demo

    RPC工作流程图 1.调用客户端句柄:执行传送参数 2.调用本地系统内核发送网络消息 3.消息传送到远程主机 4.服务器句柄得到消息并取得参数 5.执行远程过程 6.执行的过程将结果返回服务器句柄 7 ...

  5. golang mysql demo

    Go操作Mysql数据库 使用Go操作MySQL等数据库,一般有两种方式:一是使用database/sql接口,直接在代码里硬编码sql语句:二是使用gorm,即对象关系映射的方式在代码里抽象的操作数 ...

  6. Golang 对接宝付、通联、富友金账户...填坑记

    一.宝付私钥加密,公钥解密 由于对RSA加密解密原理不是很熟悉,宝付也没有Golang的Demo提供.Go语言库里一般都是私钥解密.公钥加密,或者私钥签名.公钥验签.宝付需要反过来,这里也到好找到了h ...

  7. Golang : flag 包简介

    在 Golang 程序中有很多种方法来处理命令行参数.简单的情况下可以不使用任何库,直接处理 os.Args:其实 Golang 的标准库提供了 flag 包来处理命令行参数:还有第三方提供的处理命令 ...

  8. 吾八哥学k8s(二):golang服务部署到kubernetes

    本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容.纯新手入门方式,生产服务需要完整的CI/CD流程来支持. golang服务代码 ...

  9. elixir grpc 试用

    备注:  elixir  grpc 封装测试   1.  安装 a. 安装 protoc 参考相关文档,比较简单 b. 安装elixir grpc 插件 protoc-gen-elixir 同时配置环 ...

随机推荐

  1. Nginx与Apache简单对比

    Nginx 1.轻量级,采用C进行编写,同样的 web 服务,会占用更少的内存及资源 2.抗并发,处理请求是异步非阻塞的,负载能力比apache高很多,而 apache 则是阻塞型的.在高并发下 ng ...

  2. Django开发之Datetime类型JSON序列化时报错

    前提回顾 在进行django开发view视图时,如果数据库字段是 datetime类型,在JSON序列化返回时,会出现异常 异常现象 TypeError: Object of type datetim ...

  3. ref以及传值传址的理解

    ref(也包括out)关键字肯定都会用,传值调用和传址调用也是初学写代码时都已经历过的话题,与这相关的还有一些话题,比如值类型和引用类型有什么区别等,但是如果不仔细,可能有一些概念的混淆或者理解不够清 ...

  4. Python os.tempnam() 方法

    概述 os.tempnam() 方法用于返回唯一的路径名用于创建临时文件.高佣联盟 www.cgewang.com 语法 tempnam()方法语法格式如下: os.tempnam(dir, pref ...

  5. PHP decbin() 函数

    实例 把十进制转换为二进制: <?phpecho decbin("3") . "<br>";echo decbin("1" ...

  6. Blob分析之Board_Segmentation_Uncalib

    * ************************************************************************************************** ...

  7. 7.12 NOI模拟赛 探险队 期望 博弈 dp 最坏情况下最优策略 可并堆

    LINK:探险队 非常难的题目 考试的时候爆零了 完全没有想到到到底怎么做 (当时去刚一道数论题了. 首先考虑清楚一件事情 就是当前是知道整张地图的样子 但是不清楚到底哪条边断了. 所以我们要做的其实 ...

  8. 2019 7 8 HL 模拟赛

    今天 很不爽 昨天晚上没有睡好觉 大约2点才睡着吧 反正翻来覆去睡不着 不知道为什么可能可行流 或者可行费用流并没有深刻理解 .我不会写 让我心情非常的焦躁. 大凶 顺理成章的被3位强者吊着锤(妈呀我 ...

  9. 有关WebSocket必须了解的知识

    一.前言 最近之前时间正好在学习java知识,所以自个想找个小项目练练手,由于之前的ssm系统已经跑了也有大半年了,虽然稀烂,但是功能还是勉强做到了,所以这次准备重构ssm系统,改名为postCode ...

  10. Linux恢复删除后数据文件

    简介 在使用Linux系统时,有时候会不小心误删除数据,由于Linux系统也没有与Windows系统下回收站类似的功能,一般会认为该文件将无法找回. 本文主要以CentOS7操作系统为例,介绍如何使用 ...