Skip to content

Commit 25ce234

Browse files
committed
feat: add
Signed-off-by: yuluo-yx <yuluo08290126@gmail.com>
1 parent fc71810 commit 25ce234

File tree

2 files changed

+88
-0
lines changed

2 files changed

+88
-0
lines changed

grammar/vars/main.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
7+
data := []any{1, 2, 3, 4, 5}
8+
9+
// 可变参数
10+
fmt.Println(data)
11+
fmt.Println(data...)
12+
13+
// map 遍历不是有序的
14+
dataMap := map[string]any{
15+
"a": 1,
16+
"b": 2,
17+
"c": 3,
18+
"d": 4,
19+
}
20+
21+
for i := 0; i < 5; i++ {
22+
fmt.Printf("第 %d 次输出: ", i+1)
23+
for k, v := range dataMap {
24+
fmt.Printf("%s: %v \t", k, v)
25+
}
26+
fmt.Println()
27+
}
28+
}

project/gorm/serialize/main.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"log"
6+
7+
"github.com/deigmata-paideias/fucking-go/gorm"
8+
pkggorm "gorm.io/gorm"
9+
"gorm.io/gorm/logger"
10+
)
11+
12+
type Data struct {
13+
ID uint64
14+
// Gorm 中的序列化器(Serializer)将复杂的数据结构(如 map、struct 等)序列化为 JSON 存储在数据库中。
15+
// 通过在字段标签中指定 `serializer:json`,Gorm 会自动将该字段的值序列化为 JSON 格式存储,并在查询时反序列化回原始数据结构。
16+
Other map[string]string `gorm:"serializer:json;type:longtext"`
17+
API *API `gorm:"serializer:json;type:longtext"`
18+
}
19+
20+
type API struct {
21+
Name string
22+
Desc string
23+
}
24+
25+
var db *pkggorm.DB
26+
27+
func init() {
28+
29+
_db := gorm.Init("./table_name/gorm.db", []any{&Data{}}, &pkggorm.Config{
30+
Logger: logger.Default.LogMode(logger.Info),
31+
})
32+
33+
if _db == nil {
34+
log.Fatal("Init db failed!")
35+
}
36+
37+
db = _db
38+
}
39+
40+
func main() {
41+
42+
data := &Data{
43+
Other: map[string]string{
44+
"1": "2",
45+
},
46+
API: &API{
47+
Name: "api",
48+
Desc: "api desc",
49+
},
50+
}
51+
52+
db.Create(data)
53+
54+
var dbData Data
55+
if err := db.Model(&dbData).Where("id = ?", data.ID).First(&dbData).Error; err != nil {
56+
log.Fatal(err)
57+
}
58+
59+
fmt.Printf("db data: %#+v", dbData)
60+
}

0 commit comments

Comments
 (0)