-
[Go] golang中接口值(interface)的比较
所属栏目:[大数据] 日期:2021-05-21 热度:136
当写项目的过程中,有时候进行逻辑判断,如果没注意对两个interface类型的变量进行比较,会造成混乱问题 接口比较的时候,只有当这两个变量的动态类型,动态值都相等的时候,才是相等的 一个nil的interface类型,是包含下面俩的,动态类型和动态值 ? ? ? 使用fmt.Pri[详细]
-
[Go] 在gin框架gorm下查询一对多的数据
所属栏目:[大数据] 日期:2021-05-21 热度:197
go-fly客服系统快捷回复功能,需要获取到分组名以及分组名下的回复内容 数据库的表结构是,group_id是关联字段,user_id是用户id: CREATE TABLE `reply_group` ( `id` int ( 11 ) NOT NULL AUTO_INCREMENT,`group_name` varchar( 50 ) NOT NULL DEFAULT '' ,`us[详细]
-
[Go] goland开启自动格式化和开启go modules
所属栏目:[大数据] 日期:2021-05-21 热度:57
打开file==settings==tools===file watchers 点击右边的加号,增加go fmt ? ? 打开 file === settings === Go===go modules 那个复选框勾上 ? ? ?[详细]
-
[Go]字符串转int64数值型
所属栏目:[大数据] 日期:2021-05-21 热度:112
一般想到的strconv.Atoi()转成的是int型的 下面这种是转成int64型的 strconv.ParseInt("111",10,64) ? func ParseInt(s string,base int,bitSize int) (i int64,err error) 如果base参数为0,则字符串的前缀隐含真实的基数:“ 0b”为2,“ 0”或“ 0o”为8[详细]
-
[Go] GO数据类型分类
所属栏目:[大数据] 日期:2021-05-21 热度:125
引用类型 ? 1. 切片slice 2.映射map 3.函数func 4.方法(p *P)func 5.通道channel ? 值类型 数组 bool int string float ? 指针类型 nil可以赋值给引用类型和指针类型,不能赋值给值类型会报panic错误 ?[详细]
-
[Go] 开源客服系统以及多商户客服系统-GOFLY在线客服
所属栏目:[大数据] 日期:2021-05-21 热度:199
之前开发的GO语言客服系统已经360+ star了,撒花 又开发出了多商户版本,继续撒花 测试地址: http://gofly2.sopans.com/index_cn 【Feature:新增的特性(从无到有)】 权限划分超管/商户/坐席 商户可新增坐席,超管可新增商户 后台设置页权限划分 访客自动选择[详细]
-
[Go]GO实现滑动窗口限流算法-单机版
所属栏目:[大数据] 日期:2021-05-21 热度:99
本代码基于原博客java版本的GO实现,原文解释也比较详细,这里也放上原文链接:https://www.cnblogs.com/dijia478/p/13807826.html 具体解释如下,代码在最下面 1.10秒内通过5次,这条线就是队列list,当第一个事件进来,队列大小是0,时间是第1秒: ? ?2.因为siz[详细]
-
[Go]解决 can't load package: cannot find module provid
所属栏目:[大数据] 日期:2021-05-21 热度:129
当我执行go install??github.com/xxxxx 时候,报错: can't load package: cannot find module providing package github.com/xxx: working directory is not part of a module 使用的go module来解决依赖问题 执行一下 go mod init ?[详细]
-
[GO] GO语言gin框架实现管理员认证登陆接口
所属栏目:[大数据] 日期:2021-05-21 热度:130
后台用户登录验证功能是很多项目的必须要有的逻辑,也是常见的技术需求 . 要实现这个逻辑首先要有数据库表结构如下: CREATE TABLE `user` ( `id` int ( 11 ) NOT NULL AUTO_INCREMENT,`name` varchar( 50 ) NOT NULL DEFAULT '' ,`password` varchar( 100 ) N[详细]
-
[Go]GO语言实战-开源WEB客服GO-FLY-gorm下分页的实现
所属栏目:[大数据] 日期:2021-05-21 热度:182
分页功能几乎是每个项目里都会使用的功能,在使用gorm的前提下,下面这样实现分页. 前端使用的是elementui,只需要返回两个参数就可以前端分页了,总页数和每页的条数 后端需要知道两个参数,当前第几页和每页的条数 ? 比如下面的代码: 里面的page是前端传过来的,[详细]
-
[Go] GO-FLY客服项目被公众号 "转角遇到GitHub " 推荐
所属栏目:[大数据] 日期:2021-05-21 热度:196
突然多了很多访客,有个访客告诉我被公众号推荐了,我才看到了,本来一个简单的练习项目,得到大家的认可也是开心的 大家也可以关注下"转角遇到GitHub " 原文地址: https://mp.weixin.qq.com/s/QhOsBV2y5DXeC7yCCxH-uA ?[详细]
-
[GO]解决request origin not allowed by Upgrader.CheckOrigin w
所属栏目:[大数据] 日期:2021-05-21 热度:156
在gin框架下使用websocket,如果是跨域请求的时候会报这个错误 request origin not allowed by Upgrader.CheckOrigin ? 使用的websocket库是?"github.com/gorilla/websocket" 需要增加以下代码: upgrader = websocket.Upgrader{ ReadBufferSize: 1024 ,Write[详细]
-
[GO] gin 框架gorm下使用logrus记录sql语句
所属栏目:[大数据] 日期:2021-05-21 热度:55
使用gin gorm时,默认sql语句是打印在终端的,想要记录到文件中,可以使用logrus来记录到文件 先把logrus的一些配置做好 package toolsimport ( " fmt " github.com/gin-gonic/gin github.com/sirupsen/logrus os path time " )func Logger() * logrus.Logger {[详细]
-
[Go] 实战项目在线客服GO-FLY -在gin框架使用IP识别库转换IP为城
所属栏目:[大数据] 日期:2021-05-21 热度:87
获取到当前用户的IP以后想把它转换成中国的城市 , 可以使用下面这个库 ipdb-go gin的入口代码 func PostVisitorLogin(c * gin.Context) { ipcity: = tools.ParseIp(c.ClientIP()) ipcity.CountryName+ipcity.RegionName+ipcity.CityName} @H_403_13@ 转换的[详细]
-
[Go] gin框架中增加pprof分析性能
所属栏目:[大数据] 日期:2021-05-21 热度:158
gofly客服websocket部分存在groutine泄露,在每次连接ws的时候都开启了groutine,但是没有关闭 pprof是go标准库自带的功能,引进去就能分析程序中的性能问题,在gin框架下可以使用第三方的"github.com/gin-contrib/pprof" engine := gin.Default() // 性能监控 p[详细]
-
[Go]GO语言实战-小程序或公众号接口gin框架验证微信服务器消息签
所属栏目:[大数据] 日期:2021-05-21 热度:165
在开发GO小程序或者公众号接口的时候,需要对接微信消息的token签名验证,这时候需要开发者验证来自微信,并返回指定的字符串 微信文档里给的是PHP版本的代码,下面这个是go版本的代码,使用的gin框架 ? 这个是入口的路由,根据自己的代码来写就可以,注意发来的是G[详细]
-
[GO] 变参函数-GO中函数传递变长参数
所属栏目:[大数据] 日期:2021-05-21 热度:75
如果函数的最后一个参数是采用 ...type 的形式,那么这个函数就可以处理一个变长的参数,这个长度可以为 0,这样的函数称为变参函数。 示例函数和调用: func myFunc(a,b,arg ... int ) {}func Greeting(prefix string ,who ... string )Greeting( " hello:[详细]
-
[Go] GO语言实战-使用append函数要重新赋值
所属栏目:[大数据] 日期:2021-05-21 热度:86
使用append函数的时候,要把扩展后的新slice重新赋值给原变量名,因为当底层数组的空间不足的时候,会扩充内存空间,内存空间会重新分配 通常我们并不知道append调用是否导致了内存的重新分配,因此我们也不能确认新的slice和原始的slice是否引用的是相同的底层[详细]
-
[Go]GO语言实战-GO-FLY在线客服cobra库命令行参数解析
所属栏目:[大数据] 日期:2021-05-21 热度:174
最开始的解析命令行参数是使用的标准库里面的flag包,后来想增加新的参数的时候比较复杂和困难,因此使用cobra更加简单一些 比如执行go-fly server port 8081是运行项目 执行go-fly install是导入数据库 ? 目录结构: ? ? 增加cmd目录,作为cmd包,代码中直[详细]
-
[Go] Golang发送http GET请求
所属栏目:[大数据] 日期:2021-05-21 热度:125
使用标准库http来实现 package toolsimport ( " io/IoUtil " net/http " )func Get(url string ) string { res,err : = http.Get(url) if err != nil { return "" } robots,1)"> IoUtil.ReadAll(res.Body) res.Body.Close() } return (robots)} ?[详细]
-
[Go] 类型断言和类型判断 if 和 type-switch两种形式
所属栏目:[大数据] 日期:2021-05-21 热度:124
使用类型断言断定某个接口是否是指定的类型 if这种简化形式: if _,ok:=x.(T);ok{ } type-switch 类型判断形式 switch t := x.(type) {case int: fmt.Printf(1)case nil: fmt.Printf(2)default: fmt.Printf(3)} 类型断言使得相同接口的变量在不同的时刻表现出[详细]
-
[Go] GoAdminGroup/go-admin的安装和运行
所属栏目:[大数据] 日期:2021-05-21 热度:167
使用这个GoAdminGroup/go-admin框架的最简单的例子就可以把项目运行起来,go-admin 是以扩展库的形式使用的. 建一个main.go package mainimport ( " io/IoUtil " log os os/signal " _ github.com/GoAdminGroup/go-admin/adapter/gin _ github.com/GoAdminGro[详细]
-
【GOFLY】基于GO语言gin框架和websocket实现的全开源WEB客服即时
所属栏目:[大数据] 日期:2021-05-21 热度:140
go-fly 基于GO语言实现的web客服即时通讯与客服管理系统。非常适合给自己的网站增加在线客服功能,代码简单也适合学习。 Github地址:https://github.com/taoshihan1991/go-fly 后台管理地址:?https://gofly.sopans.com/login?用户名:kefu2 密码:123 前台测[详细]
-
[Go] 从零开始项目-基于gin框架打造restfull风格API
所属栏目:[大数据] 日期:2021-05-21 热度:126
代码的包结构是在GOPATH环境变量目录中新建了bin src pkg三个目录 如果代码放在了github里 , 那么就在src目录下新建的 github.com/用户名/仓库名? 这个目录下进行开发工作 ? ? gin框架现在已经更新到了1.6.0 , 对于后端开发打造restfull 的API接口 ,非常[详细]
-
[Go]go语言实战-go版本的supervisord编译安装与运行
所属栏目:[大数据] 日期:2021-05-21 热度:156
当需要实现守护进程,以及自己开发的命令自动崩溃重启时,可以使用go版本的supervisord,比python版本依赖少一些 git clone https://github.com/ochinchina/supervisord.git env GOOS=linux GOARCH=amd64 go build -o supervisord_linux_amd64? 64位版本 env GO[详细]