文章分类 - Go语言
摘要:在一个二级深度的切片,循环一个内部切片的切片属性 sort.Slice(cg.Children, func(i, j int) bool { return cg.Children[i].ID < cg.Children[j].ID}) 这些会有问题,需要先把cg.Children赋值给变量,再赋值回
阅读全文
摘要:Readline读满缓冲区就返回,剩下的字节不会丢弃,留着下次读取。这样一行就拆分成了两次读取,两次读取出来的行都与预期的不符,后续的逻辑流程肯定也异常了,发生了截断。 分析参考: Go语言 ReadLine()异常、缓冲区问题_go readline_呕泡果奶的博客-CSDN博客 改用 line
阅读全文
摘要:例如16位有符号整数,大端端序 var data int16binary.Read(bytes.NewBuffer(data[0:2]), binary.BigEndian, &data) fmt.Println("带符号整数值", data)
阅读全文
摘要:第一种方法: url出现特殊字符可以手动替换 参考:URL上包含特殊字符处理方法 - 郭大侠1 - 博客园 (cnblogs.com) 第二种方法: url编码 使用 url.QueryEscape 而且注意,比如只有连接密码中包含特殊字符,那就只需要编码密码,url.QueryEscape(pas
阅读全文
摘要:go 执行DB查询(query)之后记得rows.close(),尤其是rows.next过程中发生错误,或者说提前停止,要手动close(),否则协程会内存泄露 gorm 中调用 Rows() 函数进行查询的时候,需要获取一个连接。策略是: 如果连接池中有空闲连接,返回一个空闲的 如果连接池中没有
阅读全文
摘要:goland正在编辑文件始终显示在左侧目录【选择状态】,始终选择状态 ctrl+shift+a 显示操作全局搜索 这两个都是关于选择文件的操作,用于控制左侧项目目录是否显示当前正在编辑文件所在位置
阅读全文
摘要:ora链接失败,程序位数(64位/32位)导致得问题。 go如果要链接ora,必须依赖客户端,如果ora得客户端时32位,所以go链接ora必须编译32位 要下载32位golang: 并且设置本地GOARCH=386: go env -w GOARCH=386 同时,本地navcat链接ora也要注
阅读全文
摘要:grpc的go部分需要安装三个可执行文件: protoc-gen-go github:https://github.com/protocolbuffers/protobuf-go 安装:go install google.golang.org/protobuf/cmd/protoc-gen-go@v
阅读全文
摘要:又是踩坑的一天,kafka2.8开始放弃zookeeper,但是网上资料都是旧的 首先docker-compose部署: version: '3.7' services: zookeeper: image: bitnami/zookeeper:latest #volumes: # - ./data:
阅读全文
摘要:遇到defer一个陷阱: 打印结果: 为什么,两次defer 值不一样? defer 函数的入参在defer的时候已经确定了, 所以第一个defer,入参值拷贝第二个defer无参数,但是defer函数捕获外部变量形成闭包,即funcval和外部参数逃逸到堆上 在golang中,defer是在函数结
阅读全文
摘要:go项目引入 github.com/alexbrainman/odbc linux下编译出现了问题: /root/go/pkg/mod/github.com/alexbrainman/odbc@v0.0.0-20210605012845-39f8520b0d5f/api/api_unix.go:14
阅读全文
摘要:删除记录 警告:当删除一条记录的时候,你需要确定这条记录的主键有值,GORM会使用主键来删除这条记录。如果主键字段为空,GORM会删除模型中所有的记录。 // 删除一条存在的记录 db.Delete(&email) DELETE from emails where id=10; // 为删除 SQL
阅读全文
摘要:undefined: resolver.BuildOption 在用clientv3连接etcd时。 遇到一个坑,略记录一下,其报错如下: C:\Users\anmut\go\pkg\mod\github.com\coreos\etcd@v3.3.22+incompatible\clientv3\b
阅读全文
摘要:1.先在main.go下打包成.exe可执行程序测试代码是否正确 //cd到main.go目录 go build //打包命令 如果打包成功则表示代码没问题,现在准备打包成linux下的程序2.必须用windows的cmd,不能使用powershell或者git bash 和 cmder等工具 //
阅读全文
摘要:当项目中有 go.mod 时,使用 go modules 管理,反之使用 旧的 GOPATH 和 vendor机制。这里针对的是含go.mod的项目 package、import、go.mod1.package是Go中用于包声明语句的关键字。如果是命令源码文件的话必须是main,但如果不是的话可以随
阅读全文
摘要:前言 随着Go 1.13发布,GOPROXY默认值proxy.golang.org在中国大陆不能被访问。七牛云顺势推出goproxy.cn,以利于中国开发者更好使用Go Modules,它是非盈利性的项目,首先感谢七牛云。 使用教程 (1)升级到Go1.13(2)运行go env -w GO111M
阅读全文
摘要:转载:https://blog.csdn.net/cj_286/article/details/79538505 go提供了sync包和channel来解决协程同步和通讯。 方式1: sync.WaitGroup是等待一组协程结束,sync.WaitGroup只有3个方法,Add()添加一个计数,D
阅读全文
摘要:package main import ( "fmt" ) func main() { for i := 'a'; i <= 'z'; i++ { fmt.Printf("%c", i) } } //方法二 package main import ( "fmt" ) func main() { //定义一个字符 ...
阅读全文
摘要:转载:https://studygolang.com/articles/12913?fr=sidebar 在源代码中字面量可以描述像数字,字符串,布尔等类型的固定值。Go 和 JavaScript、Python 语言一样,即便是复合类型(数组,字典,切片,结构体)也允许使用字面量。Golang
阅读全文