随笔分类 - go语言学习
摘要:在 Golang 里有专门的方法来实现锁,就是 sync 包,这个包有两个很重要的锁类型 一个叫 Mutex, 利用它可以实现互斥锁。一个叫 RWMutex,利用它可以实现读写锁。 互斥锁:Mutex 概念:使用互斥锁(Mutex,全称 mutual exclusion)是为了来保护一个资源不会因为
阅读全文
摘要:背景 因为接到一个比较奇葩的需求,即使mongo中没有的集合也能批量删除成功 解决办法 想到了go.mongodb.org中的DeleteMany函数,因为这个函数自带过滤条件。本次支持多条件进行过滤,并且使用$in。 $in的思考 1、$in可以进行值匹配 2、$in可以之正则表达式进行匹配(在g
阅读全文
摘要:golang 相同结构体比较方式比较 使用== 示例: type Student struct { Name string Age int } type Class struct { Name string } func main() { s1 := Student{ Name: "ysm", Ag
阅读全文
摘要:解决办法 1、首先查看本机类型 uname -m uname -m # arm64 2、根据机型选择安装包:https://studygolang.com/dl 3、之后一路next即可 4、这里默认安装了其他的依赖。这里主要讲下安装dlv-dap这个包。 如果你安装的golang版本大于等于1.1
阅读全文
摘要:golang之数据验证validator 前言 普通验证对struct的数据方法比较繁琐,这里介绍一个使用比较多的包:validator 原理 将验证规则写在struct对字段tag里,在通过反射获取struct的tag,实现数据验证 安装 go get github.com/go-playgrou
阅读全文
摘要:go接收者和锁注意事项 如果需要修改对象中的值,建议使用指针接收者。如果不需要修改对象中的值,建议使用值接收者。 代码 package main import ( "fmt" ) type Student struct { Name string Age int } func (s Student)
阅读全文
摘要:golang+qt+execl+xml 需要的配置 下载qt库 windows(环境) set GO111MODULE=off go get -v github.com/therecipe/qt/cmd/... && for /f %v in ('go env GOPATH') do %v\bin\
阅读全文
摘要:golang开发微信公众号(使用测试号) 开始开发之前的准备工作 搞定内网穿透的问题 下载内容穿透工具:https://natapp.cn/。打开网址之后,首先注册称为会员,然后登录成功之后需要实名认证才能使用。登录成功之后,点击【购买隧道】,这里我们选择免费的隧道就可以了 下载客户端 下载完之后,
阅读全文
摘要:安装go-micro go get github.com/micro/go-micro/v2 安装micro集 go get github.com/micro/micro/v2 安装:Protobuf 给安装包 链接:https://pan.baidu.com/s/1GZW2zQeLtViutO9P
阅读全文
摘要:dgw 安装过程 安装dgw go get -u github.com/achiku/dgw 运行上面的命令之后,就能获取到可运行dwg命令 dgw postgres://dbuser@localhost/dbname?sslmode=disable 可能会出现的错误 "goimports": ex
阅读全文
摘要:go module go mod 相关命令 go mod download 下载go.mod文件中指明所有依赖 go mod tidy 整理现有的依赖,删除未使用的依赖 go mod graph 查看现有的依赖结构 go mod edit编写go.mod文件 go mod -replace 旧=新
阅读全文
摘要:golang 如何开发windows窗口界面 调用包 go get github.com/lxn/walk 使用walk写一个简单的window应用程序 package main import ( "log" "strings" "github.com/lxn/walk" ."github.com/
阅读全文
摘要:热重启的意义 可以让用户神不知鬼不觉的,更新后端的项目 测试的时候,也不用停止项目然后再开启项目,降低项目开启时间 golang热重启的主要步骤 将编译好的项目覆盖进行 golang热重启的思想 监听重启信号 收到信号之后,进行fork子进程,将服务监听的socket文件描述符传递给子进程 子进程监
阅读全文
摘要:强化go get命令 利用ssh包,编写一个再window上类试运行go get的命令,将项目同时拉取到远程服务器的小项目 大概思路 读取配置文件,获取能够连接远程服务器的配置信息 创建远程服务器的session 解析命令,通过不同的信息,拉取不同的包 源代码 // conf.go package
阅读全文
摘要:在Linux上执行go build的时候,出现错误: build helloweb: cannot load github.com/go-git/go-git/v5: module github.com/go-git/go-git/v5: Get https://proxy.golang.org/g
阅读全文
摘要:golang单一职责原则接口设计 理解:按照职责的方式划分接口,就跟权限管理中,以角色进行分配权限一样 (虽然golang比较偏向于面向过程的语言,但是因为涉及接口的概念,感觉这个接口设计同样使用于golang的接口设计) package main import ( // "errors" "log
阅读全文
摘要:xorm基础学习 为什么要学习xorm 原本的JDBC操作数据库已经满足我们的所有需求了,但是我们还要提出一个概念叫做:orm(Object-Relation Mapping),一种对象与关系型数据库之间的映射,也可以说将对象持久化到磁盘。通过这样的技术能够将减少代码、便于理解和操作数据库、是数据访
阅读全文
摘要:运行bee run之后出现的错误以及解决方法 创建一个beego项目 在该项目执行下面的代码 出现的问题 解决方法 报错的原因说是,go module 名称规范要求路径的第一部分必须满足域名规范,否则可能汇报类似 这样的错误。具体还是看https://segmentfault.com/q/10100
阅读全文
摘要:window beego 安装出现的错误 解决步骤 关闭依赖包管理 重新下载
阅读全文
摘要:golang gin框架 使用swagger生成api文档 swagger介绍 是一款能更好书写API文档的规范且完整的框架 提供描述、运行,可视化 swag使用 swag下载 下载gin swagger gin swagger文件夹下有一个exmple文件夹,用来测试用的,这里我们进入basic文
阅读全文