-
[Go] 获取文件夹下面指定模式的文件列表 , 并且获取文件创建时间
所属栏目:[大数据] 日期:2021-05-21 热度:101
想要获取某个目录下以sess_开头的所有文件,如果是linux下可以直接sess*?,go标准库中也有同样的函数可以实现 files,_:=filepath.Glob("/sess_*") files就是全部的文件列表,直接for range循环就可以了 ? 要对winows和linux分开处理,windows下获取文件的创建时[详细]
-
[Go] Golang练习项目-web客服系统即时通讯websocket项目go-fly
所属栏目:[大数据] 日期:2021-05-21 热度:153
?基于GO语言实现的web客服即时通讯与客服管理系统。 1.使用gin http框架实现restful风格的API 2.使用jwt-go配合gin中间件实现无状态的jwt登陆认证 3.使用casbin配合gin中间件实现权限控制 4.使用gin以及template包的模板语法进行展示界面 5.使用go modoule解[详细]
-
[Go] Golang练习项目-GO语言实现快速排序-第一个数作为基准更容
所属栏目:[大数据] 日期:2021-05-21 热度:83
快速排序思路: 1. 第一个数作为基准数,找到所有比基准数小的放在左边 ,找所有比基准数大的放右边 2.两个指针 ,一个从前往后 i,一个从后往前 j,i找到比基准数大的停下 , j找到比基准数小的停下 , 两个数调换位置,直到两数相遇 3.调换基准数与i/j位置[详细]
-
[Go]GO语言实战项目-在线WEB客服GO-FLY即时通讯管理系统架构
所属栏目:[大数据] 日期:2021-05-21 热度:131
整体的流程图如下: ? 访客首次访问是通过websocket,注册成一个新的用户,websocket的连接存储在全局变量clientList这个map里面?,? key就是访客id,value是连接 客服登陆也是通过websocket,把连接存储在全局变量kefuList这个map里,key是客服id http和websocket[详细]
-
[Go] Golang练习项目-GO实现冒泡排序以及优化算法
所属栏目:[大数据] 日期:2021-05-21 热度:89
核心原理: 比较相邻的两个元素,较大的一个交换移动到右边 优化: 已经排好序的元素不再进行比较,减少比较次数 下面函数的变量flag 用于判断后续元素有无发生交换,没有发生交换的直接停止遍历 变量lastSwapIndex,记录最后一次发生交换的位置,后续元素不[详细]
-
[Go] 自定义一些http Server的参数 用到了interface的一些特性
所属栏目:[大数据] 日期:2021-05-21 热度:71
在一个http服务中? , 如果要定义一些参数比如读超时时间 , 写超时时间 , 那么用最简单的http.ListenAndServe 就不能实现了 需要自己实例化http.Server结构体 ,实例化完成以后 , 之前的路由怎么加进去又是一个问题 http.Server中处理请求响应是通过属性[详细]
-
[GO] golang练习项目-gorm与mysql的增删查改操作
所属栏目:[大数据] 日期:2021-05-21 热度:109
下面代码放在models包下的users.go中 表结构和struct字段是一致的,把表字段的下划线变成首字母大写的驼峰命名 创建,查找,删除,更新用户,见下面的具体方法 ? package modelsimport ( _ " github.com/jinzhu/gorm/dialects/MysqL " )type User struct { Model[详细]
-
[Go] Golang练习项目-GO语言实现插入排序
所属栏目:[大数据] 日期:2021-05-21 热度:94
核心思路: 将数组分成已排序和待排序两部分,将一个元素从待排序插入到有序数组的适当位置,直到所有待排序都插入完成 把第一个元素作为已排序数组,将后面的元素依次与已排序元素从后往前进行比较,如果当前元素小于有序数组元素,有序数组元素往后挪1位,[详细]
-
[Go] GO语言实战-gin框架项目实现中英文切换
所属栏目:[大数据] 日期:2021-05-21 热度:151
如果项目中需要有多语言的展示,类似网站中英文切换,可以使用下面这个方法来实现 主要思路就是,页面html内容展示的时候,不能固定写死在页面上,需要从控制器部分分配过来变量,展示输出这个变量 这个变量的内容来自一个结构体的成员,该结构体在创建实例[详细]
-
[Go] gin框架渲染html字符串
所属栏目:[大数据] 日期:2021-05-21 热度:50
在文档里有直接渲染一个html的文件,但是我的需求是渲染html的字符串,因为我的html要打包进二进制,不能只是外部文件的形式 engine := gin.Default() // 登陆界面 engine.GET( " /login " ,controller.PageLogin) engine.Run( :8080 " ) 我的controller包里 登[详细]
-
[Go]GO语言实战-gorm获取insert的自增id 和 struct标签不映射到
所属栏目:[大数据] 日期:2021-05-21 热度:81
实现gofly客服的过程中遇到的问题 gorm在插入完成数据后,想要获取插入的自增id,可以使用Create()方法执行插入,在结构体里直接就能获取到ID 例如下面这个User? type User struct { Model Name string `json:"name" ` Password string `json:"password" ` Nick[详细]
-
[Go] 使用packr包把静态文件打包进二进制内
所属栏目:[大数据] 日期:2021-05-21 热度:175
当使用golang开发一个网站时,一般是需要部署下静态文件的资源,go只是提供接口,打包完的go二进制文件不包含静态文件资源 但是当做一个小型的应用时还要再部署静态资源显得比较麻烦,这个时候可以使用packr这个包来把静态资源直接打包进二进制里 ? 包的github地[详细]
-
[Go]go语言中的零值
所属栏目:[大数据] 日期:2021-05-21 热度:53
go语言中的零值是变量没有做初始化时系统默认设置的值 var b bool // bool型零值是false var s string // string的零值是"" 以下六种类型零值常量都是nil var a *int var a []int var a map[string] int var a chan int var a func(string) int var a error[详细]
-
[Go] 提供http服务出现两次请求以及处理favicon.ico
所属栏目:[大数据] 日期:2021-05-21 热度:163
在http包使用的时候,注册了/这个根路径的模式处理,浏览器会自动的请求favicon.ico ,一定要注意处理 ,否则会出现两次请求 func main() { log.Println( " listen on 8080...rn访问:http://127.0.0.1:8080 " ) // 根路径 http.HandleFunc( / ,index) htt[详细]
-
[Go]当把json解析到interface{}时 , 对应的真正类型
所属栏目:[大数据] 日期:2021-05-21 热度:162
如果解析json时,把json解析到map[string]interface?,那值所对应的真正类型是下面这样的 bool,for JSON booleans float64,for JSON numbers string,for JSON strings []interface{},for JSON arrays map[string]interface{},for JSON objects nil for JSON nu[详细]
-
[Go] 轻量服务器框架tcp的粘包问题 封包与拆包
所属栏目:[大数据] 日期:2021-05-21 热度:59
tcp传输的数据是以流的形式传输的,因此就没有办法判断到哪里结束算是自己的一个消息,这样就会出现粘包问题,多个包粘在一起了 可以使用这样一个自定义的形式来解决,一个消息分为 head+body? head包括数据的长度和数据编号 , 长度和编号都是uint32类型 也[详细]
-
[Go] golang读取打包html文件到二进制
所属栏目:[大数据] 日期:2021-05-21 热度:150
当在编译打包文件时,有时候html文件需要编译进二进制 , 可以使用这个包 github.com/gobuffalo/packr ? 当使用了go.mod的话 , 直接在代码中引入使用就行 , 运行或者编译时会自动把依赖下载下来 Box := packr.NewBox("../static") content,err:=Box.FindSt[详细]
-
[Go] 转换编码处理网页显示乱码
所属栏目:[大数据] 日期:2021-05-21 热度:191
在进行抓取网页或者获取一个网页的时候,有时会因为编码问题变成乱码,下面的函数可以转换一下编码 // 转换编码 func Encoding(html string ,ct string ) string { e,name: = DetermineEncoding(html) if name!= " utf-8 " { html =ConvertToStr(html, gbk "[详细]
-
[Go] golang http下返回json数据
所属栏目:[大数据] 日期:2021-05-21 热度:109
需求返回json格式编码的结构体,需要返回content-type? 返回不同的响应码 ? 结构体的定义,因为可导出的结构体,必须大写,如果要小写,就得加这个别名 type JsonResult struct { Code int `json: " code " ` Msg string `json: msg `} 从post中获取到字段后,返回[详细]
-
[Go] golang获取http中的get传递的参数
所属栏目:[大数据] 日期:2021-05-21 热度:75
此处备注一下 , 通过Request实例中获取URL,然后调用URL的方法就可以了 ? // 获取URL的GET参数 func GetUrlArg(r *http.Request,name string ) string { var arg values : = r.URL.Query() arg = values.Get(name) return arg} ?[详细]
-
[Go] golang x.(type) 用法
所属栏目:[大数据] 日期:2021-05-21 热度:148
golang x.(type) 用法 x.(type)只能在switch中使用,和switch case配合使用,获取到类型 ? func MyPrintf(args ... interface {}) { for _,arg := range args { switch arg. (type) { case int: fmt .Println(arg,"is an int value." ) case string : case int[详细]
-
[Go] Golang中make和new的区别
所属栏目:[大数据] 日期:2021-05-21 热度:101
new: func new(Type) *Type 接收一个参数,这个参数是一种类型,而不是一个值,分配好内存后,返回一个指向该类型内存地址的指针,这个指针指向的内容的值为该类型的零值。 对于不同的数据类型,零值的意义是完全不一样的。 比如,对于bool类型,零值为fals[详细]
-
[GO] go语言中结构体的三种初始化方式
所属栏目:[大数据] 日期:2021-05-21 热度:112
结构体定义后,有三种方式去初始化这个结构体,在看一些源码的时候容易犯迷糊 1. 第一种 new的方式 t := new(T)? t现在是指向该结构体的指针,是 *T类型 ? 2. 第二种 var的方式 var t T? ?结构体现在就已经被初始化了,是T类型 ? 第三种字面量的方式 t := T{a,b}[详细]
-
[Go] 利用类型断言把interface{}的转换回原类型
所属栏目:[大数据] 日期:2021-05-21 热度:198
当传参数的时候 ,为了方便 ,参数的类型定义成了interface{},如果要给这个原类型的属性赋值 , 就需要强转回去? 例如下面的代码: func RenderList(w http.ResponseWriter,render interface {}) { header : = tools.FileGetContent( " html/header.html " )[详细]
-
[Go] goland破解步骤
所属栏目:[大数据] 日期:2021-05-21 热度:148
Jetbrains系列产品2020.1最新激活方法 , 亲测可用 , 本文转载于 https://zhile.io/2018/08/25/jetbrains-license-server-crack.html ? 大家熟知Jetbrains的话应该知道:他们家的所有产品升级到2018.2.1及以上版本后,先前可用的注册服务器都失效了,无法激[详细]