-
golang实现带有心跳检测的tcp长连接
所属栏目:[大数据] 日期:2020-12-16 热度:200
package main// golang实现带有心跳检测的tcp长连接// serverimport ("fmt""net""time")// message struct:// c#dvar (Req_REGISTER byte = 1 // 1 --- c register cidRes_REGISTER byte = 2 // 2 --- s responseReq_HEARTBEAT byte = 3 // 3 --- s send hea[详细]
-
深入理解go的slice和到底什么时候该用slice
所属栏目:[大数据] 日期:2020-12-16 热度:62
前言 用过go语言的亲们都知道,slice(中文翻译为切片)在编程中经常用到,它代表变长的序列,序列中每个元素都有相同的类型,类似一个动态数组,利用append可以实现动态增长,利用slice的特性可以很容易的切割slice,它们是怎么实现这些特性的呢?现在我们[详细]
-
深入理解go的slice和到底什么时候该用slice?
所属栏目:[大数据] 日期:2020-12-16 热度:82
深入理解go的slice和到底什么时候该用slice 前言 用过go语言的亲们都知道,slice(中文翻译为切片)在编程中经常用到,它代表变长的序列,序列中每个元素都有相同的类型,类似一个动态数组,利用append可以实现动态增长,利用slice的特性可以很容易的切割sli[详细]
-
golang 打包文件
所属栏目:[大数据] 日期:2020-12-16 热度:102
package mainimport ("archive/tar""io""os""fmt")func main() {// 创建一个tar文件f,err := os.Create("test.tar")if err != nil {panic(err.Error())}defer f.Close()// 创建一个新的tar.Writer,向w中写入tw := tar.NewWriter(f)defer tw.Close()// 返回[详细]
-
golang中的channel
所属栏目:[大数据] 日期:2020-12-16 热度:65
代码如下: // fuck.gopackage mainimport ("fmt")func Count(ch chan int) {fmt.Printf("Counting")ch - 1}func main() {chs := make([]chan int,10)for i := 0; i 10; i++ {chs[i] = make(chan int)go Count(chs[i])}for _,ch := range chs {fmt.Printf("[详细]
-
beego1.6版本服务器部署运行模板文件报错问题
所属栏目:[大数据] 日期:2020-12-16 热度:199
今天在阿里云上部署1.6版本的beego项目,报找不到模板文件,感觉莫名其妙,因为本地运行完全正常,做了如下检查: 查看gopath文件夹内的pkg内下载安装的beego,重新go get,无效 使用bee重新new个空项目,再跑,无效(连空项目都无效,你大爷啊) 写了个只有he[详细]
-
golang 并发设计模式(一)--资源生成器模式
所属栏目:[大数据] 日期:2020-12-16 热度:123
在应用系统中,常见的的应用场景就是调用一个生成器:生成订单号,序列号,随机数等。 golang goroutine为这种需求提供了强大的武器。 1.简单的生成器 package mainimport ("fmt""math/rand")func GenerateIntA()chan int {ch := make(chan int,10)go func()[详细]
-
golang 并发设计模式(三)--管道模式管道和显式取消
所属栏目:[大数据] 日期:2020-12-16 热度:76
摘自点击打开链接 Go Concurrency Patterns: Pipelines and cancellation 一、引言 Go并发原语使得构建流式数据管道,高效利用I/O和多核变得简单。这篇文章介绍了几个管道例子,重点指出在操作失败时的细微差别,并介绍了优雅处理失败的技术。 二、什么是管[详细]
-
Go-restful Usage
所属栏目:[大数据] 日期:2020-12-16 热度:194
1.前言 Go 语言是一种表达能力非常强大的语言。目前有一个Golang实现的restful webservice 包,go-restful使用起来很简单。 2.Demo 例子实现了一个查询操作,更详细的Demo见这里:https://github.com/emicklei/go-restful/blob/master/examples/restful-user[详细]
-
4 sum
所属栏目:[大数据] 日期:2020-12-16 热度:101
FROM:https://leetcode.com/problems/4sum/ Given an array S of n integers,are there elements a , b , c ,and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target. Note: The solution[详细]
-
golang 初识小结
所属栏目:[大数据] 日期:2020-12-16 热度:175
1 为什么学 工作需要,未来投资 2 golang的特点 设置为服务端语言,简洁,用来替换C语言。 3 有意思的特性 《1》 函数的可变参数 《2》变量函数首字母大写是公共的,小写是私有的 ; 《3》中文命名的变量和函数 《4》延迟执行,离开作用域后执行。关键字 def[详细]
-
Golang transfer file with socket
所属栏目:[大数据] 日期:2020-12-16 热度:132
package mainimport ( "bufio" "code.google.com/p/mahonia" "fmt" "io" "net" "os")func main() { fmt.Println("create a server or client?") reader := bufio.NewReader(os.Stdin) input,_,_ := reader.ReadLine() if string(input) == "server" { Server[详细]
-
基于Golang实现的Rabbitmq 连接池
所属栏目:[大数据] 日期:2020-12-16 热度:97
原文出处:个人博客地址:http://www.damonyi.cc/?p=11 之前项目中需要写个Python 版本的Agent,里面用到了Rabbitmq,中间遇到了好多坑啊,最主要的原因就是Python的Rabbitmq 库没有java的完善,像spring-Rabbitmq,什么都给你处理了。但是在Python中各种异[详细]
-
golang 读取切分存储byte流文件
所属栏目:[大数据] 日期:2020-12-16 热度:191
package mainimport ( "fmt" "os" "time")func check(e error) { if e != nil { panic(e) }}func cat(f *os.File) []byte { var payload []byte for { buf := make([]byte,1024) switch nr,err := f.Read(buf[:]); true { case nr 0: fmt.Fprintf(os.Stderr,[详细]
-
『Golang』在Golang中使用json
所属栏目:[大数据] 日期:2020-12-16 热度:194
由于要开发一个小型的web应用,而web应用大部分都会使用json作为数据传输的格式,所以有了这篇文章。 包引用 import ( "encoding/json" "github.com/bitly/go-simplejson" // for json get) 用于存放数据的结构体 type MyData struct { Name string `json:"i[详细]
-
『Golang』Martini框架入门
所属栏目:[大数据] 日期:2020-12-16 热度:73
本文介绍golang中的优秀web开发框架martini! 序 Martini框架是使用Go语言作为开发语言的一个强力的快速构建模块化web应用与服务的开发框架。Martini是一个专门用来处理Web相关内容的框架,其并没有自带有关ORM或详细的分层内容。所以当我们使用Martini作为[详细]
-
『Golang』Go简介以及环境搭建
所属栏目:[大数据] 日期:2020-12-16 热度:91
简介 go语言是由Google进行维护的一个编程语言,发布自2009年。其以良好的编程风格、优秀的并发机制被广大的技术人员所接受。 使用go语言开发的优秀的产品: Docker gocode lime go语言的优秀框架: Beego --- web framework Martini --- web framework base[详细]
-
『Golang』跨平台TUI(基于文字的用户界面)库Terbox-Go文档翻译
所属栏目:[大数据] 日期:2020-12-16 热度:158
原文 package termbox import "github.com/nsf/termbox-go" termbox-go 是一个用于创建跨平台TUI(基于文本的用户界面)的库。 索引 Variables func CellBuffer() []Cell func Clear(fg,bg Attribute) error func Close() func Flush() error func HideCurso[详细]
-
golang实现base62编码
所属栏目:[大数据] 日期:2020-12-16 热度:190
package mainimport ( "fmt" "math")var base = []string {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T",[详细]
-
golang 赋值操作符 := = ==
所属栏目:[大数据] 日期:2020-12-16 热度:124
这里省略了关键字 var ,我很喜欢这种方式(可以少写代码,而没有任何坏处)。 但这有需要注意的是“ :=” 是在声明和初始化变量,因此该变量必须是第一次出现,如下初始化是错误的。但是要注意赋值时要确定你想要的类型,在 Go 中不支持隐式转换的。如果是[详细]
-
Golang-web网站入门-服务器入门
所属栏目:[大数据] 日期:2020-12-16 热度:159
golang用一个控制台程序,就能够实现一个web网站的运行,不需要借助应用服务器tomcat或者web服务器apache,nginx。 进程能够进行http协议的绑定和监听某端口 下面go程序是在本机上建设一个网站,监听9090端口。 webtest.go // webtestpackage mainimport ("f[详细]
-
golang深度拷贝map
所属栏目:[大数据] 日期:2020-12-16 热度:150
最简单的方法是用json unmarshal,变成字符串,然后再用 json marshal生成新的map。这种方法对结构体也适用。 如果是map[string]interface{}和[]interface{}的组合,用代码递归也很简单: func DeepCopy(value interface{}) interface{} {if valueMap,ok :=[详细]
-
Golang func -函数 1
所属栏目:[大数据] 日期:2020-12-16 热度:73
不可或缺的函数,在Go中定义函数的方式如下: func (p myType ) funcName ( a,b int,c string ) ( r,s int ) { return} 通过函数定义,我们可以看到Go中函数和其他语言中的共性和特性 共性 关键字——func 方法名——funcName 入参——— a,b string 返回值[详细]
-
Golang搭建静态服务器- 两行代码搞定
所属栏目:[大数据] 日期:2020-12-16 热度:121
windows下,新建文件夹D:webservergowwwsite 并放入一个静态网站的所有文件 新建go源文件 staticweb.go // staticwebpackage mainimport ("net/http")func main() {http.Handle("/",http.FileServer(http.Dir("D:/webserver/gowww/site/")))http.ListenAn[详细]
-
golang init和main函数
所属栏目:[大数据] 日期:2020-12-16 热度:190
Go里面有两个保留的函数:init函数和main函数。下边就来比较一下两个函数的异同。 相同点:两个函数在定义时不能有任何的参数和返回值,且Go程序自动调用。 不同点:init可以应用于任意包中,且可以重复定义多个。main函数只能用于main包中,且只能定义一个[详细]
