-
Golang二叉查找树
所属栏目:[大数据] 日期:2020-12-16 热度:51
为简单起见,键值均为整型。 定义接口(tree.go): type Tree interface { Put ( k , v int ) //新增或修改 Get k int //查询 Delete //删除 Size () //树的大小 Min //最小键 DeleteMin //删除最小键 } 二叉查找树(binary_tree.go): //二叉查找树 type Bina[详细]
-
通过接口实现压缩文件、目录,修正遍历方式,未添加排除文件操作
所属栏目:[大数据] 日期:2020-12-16 热度:60
package zipimport ("io""os""path/filepath""strings")type Compress interface {Close() errorWriteHead(path string,info os.FileInfo) errorWrite(p []byte) (int,error)}func walk(path string,compresser Compress) error {info,err := os.Lstat(path)[详细]
-
golang 编译笔记,如何在指定系统下编译
所属栏目:[大数据] 日期:2020-12-16 热度:143
今天写了一个小爬虫,因为在windows下开发,开发更习惯,但是目标机器是linux,可能用到一些linux下的命令,但是想在大部分功能完成之后在linux里再调试开发。所以想golang中是不是也有可以针对系统进行编译的命令。就像C++当中的 #ifWINDOWS_OS///如果在win[详细]
-
Golang加头和尾部来解决tcp粘包问题.代码片段示例
所属栏目:[大数据] 日期:2020-12-16 热度:71
package mainimport ("bufio""encoding/binary""fmt""io""net")var empty []bytefunc main() {lis,_ := net.Listen("tcp",":1789")for {con,err := lis.Accept()if err != nil {continue}//当建立连接的时候交给registerConn来处理这个链接.//想自定义就可以[详细]
-
中文分词在大量数据模糊查询中的应用
所属栏目:[大数据] 日期:2020-12-16 热度:68
最近在做建筑行业相关的项目,遇到的一个应用场景是解析材料名称。由于输入的数据中材料名称非常不规范,而且数量量又非常大,所以处理起来比较困难。 名称不规范的意思是,比如标准材料叫:“圆钢”,材料中出现的名称有:“钢筋圆钢”,“圆钢HPB300”,“[详细]
-
golang 版本的 ring buffer (变长,持久化)
所属栏目:[大数据] 日期:2020-12-16 热度:110
最终的实现代码: https://github.com/esdb/drbuffer 本文是整个 kafka agent 实现过程中的第一步:http://www.jb51.cc/article/p-ctskxznv-b.html 内存结构 每个写入的packet格式如下 ---packet_size(uint16)---packet_body([]byte)--- 通过存储packet的长[详细]
-
Golang websocket使用方法
所属栏目:[大数据] 日期:2020-12-16 热度:137
package mainimport ("fmt""log""net/http""code.google.com/p/go.net/websocket")func main() {http.Handle("/",websocket.Handler(Echo))if err := http.ListenAndServe(":1234",nil); err != nil {log.Fatal("ListenAndServer: ",err)}}func Echo(ws *web[详细]
-
Golang 中的格式化输入输出
所属栏目:[大数据] 日期:2020-12-16 热度:122
Golang 中的格式化输入输出 本文转自:http://zh.golanger.com/pkg/fmt/, 并做了部分修改 【简介】 fmt 包实现了格式化 I/O 函数,类似于 C 的 printf 和 scanf。格式“占位符”衍生自 C,但比 C 更简单。【打[详细]
-
Golang 框架
所属栏目:[大数据] 日期:2020-12-16 热度:76
这些资源,框架,表明一个新兴的语言在掘起。 不论框架名称和代码的更替。 框架里面的方法和结构会一直存在下去。从 ASP PHP C# JAVA 到 GO 一直发展着。 入口管理,路由器,控制器,数据层,模板 异常,日志等。 web 用户型,api型,server cron 型。 框架[详细]
-
Golang glfw中使用opengl库的问题
所属栏目:[大数据] 日期:2020-12-16 热度:180
最近在看看一个Golang的项目,里面使用了GLFW和GL来写UI,之前从来没有接触过这两个库,安装官方文档写了一个例子。 package mainimport ( "runtime" "github.com/go-gl/glfw/v3.1/glfw")func init() { // This is needed to arrange that main() runs on ma[详细]
-
二、slice和数组的区别,map的注意事项 -go语言笔记
所属栏目:[大数据] 日期:2020-12-16 热度:139
这次要说说array,slice,map。虽然前面已经说过了,但是实际使用中发现对这几个的使用和理解还是不够详细 现在再重新看看这几个类型 array类型 array是固定长度的数组,这个和C语言中的数组是一样的,使用前必须确定数组长度。但是和C中的数组相比,又是有[详细]
-
golang入门--一个简单的http client
所属栏目:[大数据] 日期:2020-12-16 热度:140
import ("fmt""io/ioutil""log""net/http""net/url")func main() {//resp,_ := doGet("http://www.baidu.com")//resp,_ := doPost("http://www.baidu.com","application/json;charset=utf-8")resp,_ := doPostForm("http://www.baidu.com")defer resp.Body.C[详细]
-
golang入门-- 一个2D的图形库学习
所属栏目:[大数据] 日期:2020-12-16 热度:133
此库叫gg,源码在github。 1、获取源码并安装到本地: 首先要安装git (传送门) : https://git-scm.com/download/ 然后就可以通过 go get 命令从git获得源码并安装(此处默认大家已安装go) : 在cmd 进入GOPATH目录,然后输入 : go get github.com/foglema[详细]
-
白话Golang的Hello world
所属栏目:[大数据] 日期:2020-12-16 热度:87
####安装Golang开发环境 要想使用go语法做开发,首先当然是要搭建go的开发环境了。到Golang官网上下载go的安装包,找自己机器对应的版本。 当然如果你是在天朝,通常情况下被墙是不可避免的,你可以自行翻越或者到Golang中国上下载。 go在大中华地区还是很流[详细]
-
Golang Linux下面调用nohup启动程序无法返回问题,解决方法.
所属栏目:[大数据] 日期:2020-12-16 热度:154
package mainimport ("os""os/exec")func main() {f,_ := os.Create("1.txt")cmd := exec.Command("su","-","user00","-c","cd /tmp;nohup sh 1.sh ")cmd.Stdout = os.Stdoutcmd.Stderr = fcmd.Run()}[详细]
-
Go计算运行的时间
所属栏目:[大数据] 日期:2020-12-16 热度:121
函数time.Since() 计算golang运行的时间是非常有用的性能衡量指标,特别是在并发基准测试中。下面将介绍如何简单地使用Go语言来计算程序运行的时间。 简单地使用Golang的time.Since()函数即可。下面有一个完整例子展示这个用法。 package main import ( "fmt[详细]
-
golang 快捷付值需要注意的地方
所属栏目:[大数据] 日期:2020-12-16 热度:112
http://bbs.studygolang.com/thread-29-1-1.html 看这段代码的输出是: package main import "fmt" var name string func main() { name,err := getString() if err != nil { panic(err) } fmt.Println("first print:" + name) printName() } func printName([详细]
-
golang 测试方法
所属栏目:[大数据] 日期:2020-12-16 热度:82
golang测试方法[详细]
-
golang tcp heartbeat
所属栏目:[大数据] 日期:2020-12-16 热度:119
package mainimport "log"import "time"const TIMEOUT_NS = int64(30e9) // 30 secondstype Msg struct {Header uint8 // == 1SeqNo uint32Data uint8 // the real case is complex}type Reply struct {Header uint8 // == 2SeqNo uint32Status uint8}type A[详细]
-
golang日志中心取日志代码分享
所属栏目:[大数据] 日期:2020-12-16 热度:83
package mainimport ("archive/zip""bytes""encoding/json""fmt""io""io/ioutil""net""net/http""os""path/filepath""strings""time")var tempDir string = "tmp"const zone int64 = +8func init() {os.MkdirAll(tempDir,0644)}const bodyType = "applicatio[详细]
-
Go学习笔记:golang交叉编译
所属栏目:[大数据] 日期:2020-12-16 热度:162
(1)首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。 $ cd /usr/local/go/src $ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash 如果是 Windows 则修改 GOOS 即可。 $ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash[详细]
-
Go实现的微博消息队列
所属栏目:[大数据] 日期:2020-12-16 热度:60
有兴趣看实现消息队列原理的,请移步 https://github.com/YoungPioneers/mgq,感谢您的宝贵意见 Introduction Memcached Go Queue,简称mgq,是一个用Go语言写的,基于memcached协议的消息队列。其父亲mcq是最早应用于weibo的基础消息中间件,有着高性能,解耦[详细]
-
golang项目邮件发送模块代码分享
所属栏目:[大数据] 日期:2020-12-16 热度:104
package sendMailimport ("fmt""net/smtp""strings")type senderInfo struct {User string `jsob:user`Passwd string `json:passwd`Host_port string `json:host_port`Mailaddr string `json:mailaddr`Subject string `json:subject`}func (self *senderInfo[详细]
-
Golang给目录按时间排序.正则、时间条件搜索文件
所属栏目:[大数据] 日期:2020-12-16 热度:170
package mainimport ("fmt""io/ioutil""os""path/filepath""regexp""sort""strings""time")func main() {var i FindFiles = FindFiles{"AutoUpdate",false,true}//list,err := i.RegFindFile("log.*")//fmt.Println(list,err)list,err := i.DateFindFile(30)[详细]
-
Nats的消息通信模型
所属栏目:[大数据] 日期:2020-12-16 热度:144
Nats的消息通信模型 作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 6、NATS消息通信模型 NATS的消息通信是这样的:应用程序的数据被编码为一条消息,并通过发布者发送出去;订阅者接收到消息,进行解码[详细]
