随笔分类 -  golang

摘要:写了一个批次执行函数的功能,采用范型,直接上代码 batch实现代码: package utils import ( "time" ) type batch[T any] struct { Array []T Func func(array []T) Count int Interval float 阅读全文
posted @ 2022-12-20 18:04 若-飞 阅读(88) 评论(0) 推荐(0)
摘要:1. 问题之前写了一套统一mysql返回数据的解析库: rows, err := ms.dbInst.Query(s, args...) //执行SQL语句,比如select * from users if err != nil { panic(err) } columns, err := rows 阅读全文
posted @ 2022-12-09 17:26 若-飞 阅读(193) 评论(0) 推荐(0)
摘要:数组: var arr = [10]{1,2,3,4,5,6}slice: var arr = []{1,2,3,4,5,6} array 类型 array是固定长度的数组,使用前必须确定数组长度 golang array 特点: golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一 阅读全文
posted @ 2022-12-08 16:24 若-飞 阅读(140) 评论(0) 推荐(0)
摘要:直接上代码: package main import ( "fmt" "reflect" ) func main() { var n = 33 var pn = &n var ppn = &pn // new可以定义不同类型的地址,可以是int/int*/int**,都是可以的,对应的值也是需要正确 阅读全文
posted @ 2022-12-06 10:11 若-飞 阅读(67) 评论(0) 推荐(0)
摘要:先看代码: package mainimport ( "fmt" "reflect")func main() { var n = 33 var pn = &n var ppn = &pn var pn2 *int = nil // 指针是不能set的,指针指向的元素可以set fmt.Println 阅读全文
posted @ 2022-12-05 15:31 若-飞 阅读(236) 评论(0) 推荐(0)
摘要:要获取指针的指针进行设置值 var n int var pnTarget *int // 这里传递的是指针的指针 **int ppnv := reflect.ValueOf(&pnTarget) pnV := ppnv.Elem() // 创建原始的类型, *int pc := reflect.Ne 阅读全文
posted @ 2022-12-05 15:13 若-飞 阅读(71) 评论(0) 推荐(0)
摘要:为什么有tcp Keepalive? 服务器和客户端建立tcp连接以后,客户端/服务器如何知道对方是否挂掉了? 这时候TCP协议提出一个办法,当客户端端等待超过一定时间后自动给服务端发送一个空的报文,如果对方回复了这个报文证明连接还存活着,如果对方没有报文返回且进行了多次尝试都是一样,那么就认为连接 阅读全文
posted @ 2022-05-25 10:58 若-飞 阅读(673) 评论(0) 推荐(0)