随笔分类 -  Golang

Golang的问题解决 包含vscode和goland的配置
摘要:查询: // model方法的作用 err = db.Model(&model.StreamPath{}).Where("id = ?", cast.ToUint(id)).First(&sp).Error 更新多个字段 err = db.Model(&sp).Updates(map[string] 阅读全文
posted @ 2024-05-07 21:24 潜行1 阅读(7) 评论(0) 推荐(0) 编辑
摘要:整理中 阅读全文
posted @ 2024-04-01 21:00 潜行1 阅读(20) 评论(0) 推荐(0) 编辑
摘要:这是go里面性能最好的拼接字符串的方式了; var b strings.Builder b.Grow(64) b.WriteString("hello") b.WriteString(" world") var s = b.String() fmt.Printf("s: %v\n", s) fmt. 阅读全文
posted @ 2024-03-01 18:38 潜行1 阅读(5) 评论(0) 推荐(0) 编辑
摘要:示例代码: // 通过psutil获取所有分区的信息 // 重要字段: /* fmt.Printf("Device: %s\n", partition.Device) fmt.Printf("Mountpoint: %s\n", partition.Mountpoint) fmt.Printf("F 阅读全文
posted @ 2024-02-26 14:38 潜行1 阅读(120) 评论(0) 推荐(0) 编辑
摘要:cgo尝试 环境 gcc需要; go环境变量 CGO_ENABLED需要设置为1 goland不支持补全cgo中的c或者c++代码, 需要使用专门的cpp的ide, 我现在用的是 vs2022 类型系统的对应 c的类型与cgo都需要对应; 00:26有一张表格 编译器类型 gcc和g++都是常用的编 阅读全文
posted @ 2024-02-26 13:24 潜行1 阅读(41) 评论(0) 推荐(0) 编辑
摘要:os.ReadDir会返回 DicEntry, 它包含了一部分文件信息; func ListSubDir(path string) ([]string, error) { if !IsExist(path) { return []string{}, nil } fs, err := os.ReadD 阅读全文
posted @ 2024-02-26 13:23 潜行1 阅读(7) 评论(0) 推荐(0) 编辑
摘要:golang中处理csv 标准库中csv文件的一些内容 var file io.Reader reader := csv.NewReader(file) gocsv库 他有以下特点: 简单的api来将csv内容解析成go结构体 自定义解析特定类型的函数; 自定义csv的reader和writer 基 阅读全文
posted @ 2024-02-26 13:20 潜行1 阅读(17) 评论(0) 推荐(0) 编辑
摘要:参考下面这个 makefile .PHONY: build debug dlv clean tool lint help all: build build: @go build -v . debug: go build -gcflags "all=-N -l" -v -o app . dlv: dl 阅读全文
posted @ 2024-02-26 13:17 潜行1 阅读(18) 评论(0) 推荐(0) 编辑
摘要:在 golang中对接接口文档 假如你作为客户端对接别人的接口文档 使用 resty库 构建 multipart/form-data的请求 使用resty client := resty.New() client.R().SetFile(key, filePath) SetFormData( map 阅读全文
posted @ 2024-02-04 21:07 潜行1 阅读(45) 评论(0) 推荐(0) 编辑
摘要:go 标准库 http创建 multipart/form类型 创建最终要写到request中的数据的容器, 例如 bytes.Buffer 使用multipart包的NewWriter函数; 写入 form-data字段, 文件要使用另外的api; 构建 http.Request, 创建body 发 阅读全文
posted @ 2024-02-04 21:05 潜行1 阅读(58) 评论(0) 推荐(0) 编辑
摘要:dlv启动程序后, goland中运行配置中选择 go remote可以配置dlv来进行调试; 使用 dlv命令启动: dlv --listen=:2345 --headless=true --api-version=2 --accept-multiclient exec ./demo 然后在gol 阅读全文
posted @ 2024-01-29 21:56 潜行1 阅读(111) 评论(0) 推荐(0) 编辑
摘要:go module 从私有库获取包 go get是读取 go env和git的相关配置来使用 http(s) 或者ssh来拉取源码. 参考的这篇: GoGet访问私有库配置 总结的是以下几点: go get时必须要与包名匹配, 所以上传的包的名字还是要按固定的来; 比如可以是 firetech/zz 阅读全文
posted @ 2024-01-26 18:07 潜行1 阅读(514) 评论(0) 推荐(0) 编辑
摘要:go对io操作进行限流 起因是我对大文件进行切片的时候, 先去获取了文件的MD5, 读取文件的过程中把我所有的磁盘io吃满了, 卡的要死, 然后就突然想到了对io进行限流; 因为我现在做的需求以后是有可能放在后台运行的. 使用的一个三方库, 可以对诸如 io.Reader和io.Writer进行限流 阅读全文
posted @ 2024-01-22 23:44 潜行1 阅读(28) 评论(0) 推荐(0) 编辑
摘要:io.Pipe() 返回 reader和writer, 这种机制使得可以进行并发的数据交换; 写入到这个 writer中的数据会被同步到 reader中; io.TeeReader() 可以给原始的 TeeReader进行分流, 另外一个 writer可以同时获取到写入的数据; 我是不是可以理解成: 阅读全文
posted @ 2024-01-20 14:15 潜行1 阅读(26) 评论(0) 推荐(0) 编辑
摘要:我知道的是, 是一个 http长连接, 有着类websocket的api; 后端示例代码: package main import ( "fmt" "net/http" "time" "github.com/gin-gonic/gin" ) func main() { router := gin.D 阅读全文
posted @ 2024-01-17 15:00 潜行1 阅读(537) 评论(0) 推荐(0) 编辑
摘要:尝试从 godev官网下载targz安装go 下面这个是go官网的, 注意使用代理下载; wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz tar -zxvf go1.21.6.linux-amd64.tar.gz mv go/ /usr/loca 阅读全文
posted @ 2024-01-15 23:19 潜行1 阅读(74) 评论(0) 推荐(0) 编辑
摘要:gws常用的操作 json格式参考 home assiatant文档中的那个定义: ha websocket文档 定义handler, 它是gws的websocket的回调方法集合定义的接口 // ClientEventHandler 是 Websocket事件回调的模板. // 有 open, c 阅读全文
posted @ 2024-01-15 21:13 潜行1 阅读(110) 评论(0) 推荐(0) 编辑
摘要:我同事是这么写的. go get github.com/topxeq/mahonia var enc mahonia.Decoder = mahonia.NewDecoder("gbk") 阅读全文
posted @ 2024-01-08 14:53 潜行1 阅读(11) 评论(0) 推荐(0) 编辑
摘要:gin的部分参考同事和开源项目cloudreve; gorm参考小徐先生的博客; 待补充地址 阅读全文
posted @ 2024-01-08 10:01 潜行1 阅读(29) 评论(0) 推荐(0) 编辑
摘要:参考以下的代码: package database import ( "Forensics_Equipment_Plugin_Manager/logger" "Forensics_Equipment_Plugin_Manager/model" "github.com/glebarez/sqlite" 阅读全文
posted @ 2023-12-30 19:38 潜行1 阅读(243) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示