![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
上官二狗
秃头工程师
展开
-
go 封装 ActiveMq,并实现 topic 和 queue 的生产和消费
go 封装 ActiveMq,并实现 topic 和 queue 的生产和消费需要了解的基础知识总所周知 activemq 有两种消息传递类型分别为queue Point-to-Point,点对点通信模型,即一个生产者对应一个消费者topic publish-and- subscribe,发布订阅模型,一个生产者可根据订阅向多个消费者推送数据go 连接 activemq 的...原创 2019-12-15 02:25:56 · 1448 阅读 · 1 评论 -
基于 Gin 的会议室预约 API 设计 (一)
基于 Lumen 的会议室预约 API 设计基本功能设计设计分为手机mobile端和电脑pc端在会议室张贴二维码,手机扫描二维码即可加入手机预定页面手机端只能进行会议室的预约和查看个人预约情况电脑端即可以预约,也可以登陆管理员账号,管理预约请求只能在整点和半点进行预约,每次会议最小时间为半小时,最大为两小时数据库设计一个建立四张表(这里不建立用户表,大家根据需求可...原创 2018-07-18 16:23:58 · 908 阅读 · 1 评论 -
基于 Gin 的会议室预约 API 设计 (二)
会议室预约功能模块大概可以分为三大部分预约模块黑名单模块日志模块预约模块请求占用时间表,验证请求时间是否被占用,没有则进行第2步,有则返回失败创建预约,并将请求写入操作日志向占用时间表插入数据假设用户选中 2018-08-30 08:00~09:00 的时间在一号会议室开会在创建订单的时候我会先从占用时间表 used_time 查找 一号会议...原创 2018-08-30 16:57:20 · 482 阅读 · 1 评论 -
Go websocket 做消息推送(视频弹幕的简单实现原理)
server.gopackage mainimport ( "github.com/gorilla/websocket" "net/http" "socket/impl" "time")var ( upGrader原创 2018-10-24 18:27:30 · 1986 阅读 · 2 评论 -
Go 关闭 channel 的 close 方法
在 Go 中我们所以 close() 来关闭一个 channel官方的注释如下The close built-in function closes a channel, which must be either bidirectional or send-only.It should be executed only by the sender,never the receiver, ...原创 2018-10-23 17:58:41 · 7280 阅读 · 1 评论 -
Go 缓冲 channel 和 非缓冲 channel 的区别
在Go中我们make一个channel有两种方式,分别是有缓冲的和没缓冲的缓冲channel 即 buffer channel 创建方式为 make(chan TYPE,SIZE)如 make(chan int,3) 就是创建一个int类型,缓冲大小为3的 channel非缓冲channel 即 unbuffer channel 创建方式为 make(chan TYPE)如 ...原创 2018-10-23 13:35:44 · 10180 阅读 · 2 评论 -
Go websocket 聊天室的详细实现和详细分析
package mainimport ( "encoding/json" "fmt" "net/http" "github.com/gorilla/websocket" "github.co原创 2018-10-25 18:00:58 · 9098 阅读 · 5 评论 -
Go 如何让函数只能被调用一次
某些时候我们会有让函数只能被调用一次的需求完成这个功能可以使用 Go 的 sync.Once 方法package mainimport ( "fmt" "sync")type SayHello struct { once sync.Once}func (sayHello *SayHello) print() { sayHello.once.Do(func() { ...原创 2018-10-22 18:42:08 · 4688 阅读 · 0 评论 -
beego API开发入门教程
下载 beego下载 beego 前,需要做好如下准备安装好 golang 语言在系统变量中配置 GOPATH、GOBIN安装好 git下载 beego 安装包 go get github.com/astaxie/beego下载 bee 工具 go get github.com/beego/bee使用 git 进入$GOPATH/src使用命令 bee version...原创 2018-10-09 14:44:56 · 10993 阅读 · 6 评论 -
Go 数据的类型及默认值
Go语言将数据类型分为四类:基础类型、复合类型、引用类型和接口类型基础类型整形有符号整形 int8 int16 int32 int64 默认值 0无符号整形 uint8 uint16 uint32 uint64 默认值 0特殊整形 int uint byte rune uintptr 默认值 0浮点型浮点型数 float32 float64 默认值 0...原创 2018-10-18 16:28:04 · 10231 阅读 · 1 评论 -
Go 的面试基础算法(一)
查找数据库字段中重复的数据 SELECT grade FROM user GROUP BY grade HAVING COUNT(*)>1;原创 2018-12-06 16:45:20 · 1528 阅读 · 0 评论 -
Go 指针声明后赋值,出现 panic: runtime error: invalid memory address or nil pointer dereference
在 golang 中如果我们定义一个指针并像普通变量那样给他赋值,例如下方的代码package mainimport "fmt"func main() { var i *int *i = 1 fmt.Printf("%p %v", &i, *&原创 2018-10-08 14:57:42 · 109803 阅读 · 3 评论 -
Go 的 rune byte 和 string
rune 、 byte 和 string 都是 Go 的内置类型bytebyte是uint8的别名,在所有方面都等同于uint8按惯例,它用于区分字节值和8位无符号整数值。runerune是int32的别名,在所有方面都等同于int32按惯例,它用于区分字符值和整数值。stringstring是所有8位字节字符串的集合,通常但不一定代表UTF-8编码的文本...原创 2018-10-12 17:23:45 · 1298 阅读 · 0 评论 -
Go struct 类型的 map 结构体成员不能修改的问题
错误示例刚刚上手,我们都会习惯性的向下面这样赋值 ,示例如下package mainimport "fmt"type person struct { name string age int sex string}func main() { //建立结构体map s := make(map[int]person) //给map赋值 s[1] = pe...原创 2018-09-21 17:42:30 · 10093 阅读 · 0 评论 -
Go 语言实现堆排序与快速排序
go 语言实现堆排序package mainimport ( "fmt")func buildHeap(arr []int) { length := len(arr) for i := (length / 2) - 1; i >= 0;原创 2019-01-11 18:57:00 · 482 阅读 · 0 评论