golang
(158)golang 生成文章简介
主要是为了用 golang 生成文章简介,及 html description 标签的内容。
## 逻辑
- 去除 html tag
- 取前 N 个字符 (160 个字母,或 80 个中文字符)
## HTML S
Golang 后台模板分页组件,基于 Tailwind CSS
## 为何不适用基于 Javascript 的分页组件
For SEO. 写 Web 就是为了能被用户搜素到,如果不是为了这个目的,web 版本都没有存在的价值。
而分页导航又是被搜索引擎收录的关键,所以一定要在后台进行渲染,不要
Golang Gorm Sum decimal 字段类型
感觉是 Gorm 的 Bug,在使用 Pluck 获取 Sum 结果时总是报错。
而用 Scan 就没有问题。
## 可行的做法 Scan
```
type FHSum struct {
Total float64
}
Go 1.18 版本新特性,及升级步骤
今年 315 唯一的好消息是,Golang 1.18 版本发布。
## 新特性
- 支持泛型 Generics
- 模糊测试 Fuzzing
- Workspaces
- 性能提升 20%。但是由于支持了泛型,编译时间比
golang gorm 的多对多关系 CRUD 操作
例如,一个财务预算管理系统,需要能设置各部门的负责人,以方便控制查看权限。
而且可以一个部门设置多个负责人。
## golang gorm 的数据结构
因为我独立建了个关系表,兼容出现多对多的关系,所以用到了 gorm many2
Golang 使用 sql.NullString 替代 string 类型,避免空字符串引起的唯一索引报错
例如:
用户表的用户名字段为可 Null 字段,但是如果在 golang struct 中定义为 string,则在保存时,不指定值,会默认存入空字符串。
正常情况下并没有什么影响,但是如果恰好这个字段上建了唯一索引。那么非 N
Golang Gorm 数据插入 MySQL 失败 Error 1054: Unknown column 'xx' in 'field list'
原因是,我 Struct 中定义了一个新字段,为了方便在接口返回数据时,能补充一个数据库中没有的信息。
这导致在 Gorm 插入 MySQL 时报错,提示未知字段错误。
## 插入时,忽略指定字段
查了一下,发现 Gorm
sql.NullTime 计算时间差
定了一个类型,实际上是 sql.NullTime。我想计算当前时间与其值的时间差。
```
type NullTime struct {
sql.NullTime
}
```
## sql.NullTime
ht
为 golang 项目添加 Makefile
## 使用 Makefile 的好处
可以管理多个任务的命令。例如,build & run,test。
否则单单一个
```
go test -v ./...
```
就很难记住。
何况还会有很多需要记录的命令
golang gorm 2 中使用 lock for update 锁
查了一下 golang gorm 2 确实支持 lock for update。文档:
https://gorm.io/zh_CN/docs/advanced_query.html#Locking-FOR-UPDATE
```