golang
文章平均质量分 57
HNU_GeorgeYang
这个作者很懒,什么都没留下…
展开
-
golang sqlx查询报错: missing destination name xx in xxx
sqlx查询多条记录,存入一个结构体slice中,尝试了单独select某一个字段,大多数报missing destination name xx in xxx这样的错,有些字段又不报错,一路调试跳进去看,最终找到问题:(也有很多人因为tag中 db:“msgId”)漏掉了这两个引号导致上述问题发现Message这个结构体中,那五个有红圈的字段,在反射时都没有找到映射的db字段名,原来是写tag时,多敲了一个\t。去掉多余的\t后,就可以正确将结果存入slice了。他????的,一个制表符折腾原创 2021-02-17 02:01:41 · 3696 阅读 · 0 评论 -
golang重载MarshalJSON实现自定义序列化
背景:time.NOW()获得的时间格式是RFC3339格式的,需要把他按照yyyy/MM/dd hh:mm:ss的格式进行json序列化并返回给前端解决方法:给目标类型创建一个别名,并对该别名重载MarshalJSON方法,例如: //给time.Time创建别名为jsonTime type jsonTime time.Time //包含time.Time类型字段的结构体,改用jsonTime这个类型 type Message struct { Create原创 2021-02-02 22:50:21 · 4353 阅读 · 1 评论 -
golang使用sqlx报错:unsupported type []interface {}, a slice of interface
问题:自己使用sqlx操作数据库,想封装一个Insert函数:func Insert(sql string,args ...interface{}) (int,bool){ ret, err := DataSource.Exec(sql, args) /*这里是错误写法*/ if err!=nil{ return 0,false } id, err := ret.LastInsertId() return int(id),true}执行Insert时传入sql和两个参数,sqlx报错原创 2020-12-29 23:48:08 · 5125 阅读 · 1 评论 -
golang后端接入MOB的短信服务
背景:初学golang,想和同学前后端分离做个小APP,我负责后端。需要用到短信服务来做验证码登陆,选择了MobTech的SMS服务(一个月免费1W条,MOB牛逼!)问题:以前做的短信登陆逻辑如图:MOB文档中给出了两种策略:我感觉第一种后端不涉及验证过程的策略可能存在安全隐患,因为校验短信验证码的动作发生在前端,之后由开发者在前端回调后台的业务接口诸如登陆和注册。那么在调用这一业务接口时,肯定需要前端引入某种加密策略,来确保对该接口的请求一定是前端经过完整的验证码流程后发起的,只有这样原创 2020-12-27 22:03:05 · 530 阅读 · 0 评论 -
Golang 中JSON unmarshal解析数据的类型
背景:初学golang,在demo项目中接入sms短信服务,需要通过第三方的接口校验验证码。共使用到以下三个包: "encoding/json" //json解析相关 "io/ioutil" //解析httpResponse的body "net/http" //发起http请求//校验收到的验证码func VerifyCode(phone, code string) (bool, error) { // json contentType := "application/json原创 2020-12-27 19:47:48 · 2042 阅读 · 1 评论 -
golang学习笔记
编译运行文章目录编译运行前言一、golang的优势?二、编译运行三、代码规范四、语言特性·指针·结构体·命名相关问题·方法和函数·结构体嵌套·接口·golang接口相关的特性五、基础语法·声明变量·控制台打印·声明结构体对象·结构体初始化·流程控制六、 集合数组切片切片表达式判断切片是否为空切片的拷贝切片中删除一个元素切片添加元素切片的扩容机制map创建和初始化获取map中元素向map中添加元素遍历map删除元素小例题:英文单词词频统计七、常用标准库中的一些经典用法(不断更新)前言初学golang原创 2020-12-13 22:44:38 · 1205 阅读 · 0 评论