Go 结构体日志工具:testlogs 包详解

笔记  Go 

前言今天在写项目的时候测试函数打印结构体,发现用golang的fmt输出整个结构体的内容实在是太费劲了,而且也不美观(美观需要花费大量精力写)突然就想到,可以利用golang的反射获取tag里面的Key value作为结构体字段的说明,结构体字段作为value就写了testlog这个库说明本文将介绍

SSE练习


SSE需求当需要让服务端向客户端发送消息的时候比如实时更新状态或推荐内容相比websocket消耗资源更少,而且建立连接更方便,自带重传机制,不需要像websocket一样需要自己实现重传机制参考资料https://zh.javascript.info/server-sent-eventshttps

文件分片上传和断点续传实现

笔记  Go 

https://codeberg.org/meowrain/fileuploadwithchunk后端部分后端部分采用gin实现r.POST("/upload-chunk", uploadChunk)r.POST("/get-uploaded-chunks",

Golang判断系统大小端

笔记  Go 

package mainimport ("fmt""unsafe")func main() {var num uint32 = 0x12345678 // 定义一个 4 字节的整数bytePtr := (*[4]byte)(un

Golang中字符串转成byte数组会触发内存拷贝吗?

笔记  Go 

会触发我们用下面代码的方法就可以不触发内存拷贝,让切片指向字符串底层字节数组的地址了package mainimport ("fmt""reflect""unsafe")func str2BytesOld(s string) []byte

Gorm 多对多

笔记  Go 

package mainimport ("fmt""gorm.io/gorm""log")import "gorm.io/driver/mysql"type User struct {gorm.ModelName st

Gorm 一对多

笔记  Go 

package mainimport ("fmt""gorm.io/gorm""log")import "gorm.io/driver/mysql"type User struct {gorm.ModelName st

Gorm 一对一关系

笔记  Go 

一对一关系建表package mainimport ("gorm.io/gorm""log")import "gorm.io/driver/mysql"type Student struct {gorm.ModelName

golang sql库简单使用

笔记  Go 

package mainimport ("database/sql""fmt""log"_ "github.com/go-sql-driver/mysql")func main() {dsn := "root:

Golang实现Set

笔记  Go 

Golang实现Setpackage setimport "fmt"type void struct{}type Set struct {m map[any]void}// 创建一个新的集合func NewSet(items ...any) *Set {s := &Set