zhouxing9454 / gitalk

1 stars 0 forks source link

Go_MOD遇见的一个问题 - Olivia的小跟班 #38

Open zhouxing9454 opened 3 months ago

zhouxing9454 commented 3 months ago

https://www.youandgentleness.cn/2024/07/15/Go-MOD%E9%81%87%E8%A7%81%E7%9A%84%E4%B8%80%E4%B8%AA%E9%97%AE%E9%A2%98/

Life=Coding;Enjoy Life ==Enjoy Coding;

zhouxing9454 commented 3 months ago

var只是声明一个变量,没有初始化它。如果用var声明一个结构体,这个结构体里面嵌套一个其他结构体指针,这就会导致其他结构体指针未初始化为nil指针,直接给其他结构体指针赋值会导致panic。同时,函数无论是返回值还是参数,如果涉及指针一定要注意是否初始化,很容易在函数内部对未初始化的nil指针进行赋值操作。 不要觉得这个点很简单,经常有人出错

zhouxing9454 commented 3 months ago

go get 仓库地址@commitHASH这样go mod就会正常更新到你新提交的版本

zhouxing9454 commented 3 months ago

var res []*entity.Department res = make([]*entity.Department, len(departments)) for i, department := range departments { res[i].DepId = department.OpenDepartmentID res[i].DepName = department.Name } return res, nil 错误的代码实例, res 切片中的每个元素都是 nil,因为 make 函数只分配了切片的内存,但没有初始化切片中的元素。因此,试图访问 res[i].DepId 和 res[i].DepName 时会导致 nil 指针解引用错误。 正确的做法: // 为切片中的每个元素分配一个新的 Department 实例 res[i] = &entity.Department{ DepId: department.OpenDepartmentID, DepName: department.Name, }

zhouxing9454 commented 2 months ago

golang是用gorm更新数据的时候要确保结构体字段的零值(如布尔类型的false)不会被忽略,最好用map更新,gorm官网上有

zhouxing9454 commented 2 months ago
image

忽略sql语句的部分内容,就看排序那边,这样可以保证排序是按照数字,英文,中文来一个一个排序的,去掉lower区分大小写

zhouxing9454 commented 2 months ago

使用 gorm:"-" json:"-" 在 Go 语言的结构体中有特定的原因:

  1. 安全性: 保护敏感数据:像密码或其他敏感信息这样的字段不应暴露在 JSON 响应中。通过使用 json:"-",确保这些字段不会包含在结构体的 JSON 表示中,从而防止数据泄露。 数据库操作:有些字段不应该存储在数据库中或从数据库中读取。使用 gorm:"-" 确保 GORM 在执行数据库操作时忽略这些字段。

  2. 数据完整性: 计算字段:应用程序内部计算的字段,不需要存储在数据库中,可以标记为 gorm:"-" 以避免不必要的存储。 临时数据:仅在应用程序运行时相关的临时数据字段,可以被 GORM 和 JSON 序列化忽略。

  3. 优化: 减少负载大小:通过使用 json:"-" 排除不必要的字段,可以减少 JSON 负载的大小,提高数据传输的效率。

zhouxing9454 commented 2 months ago

type DBOption func(gorm.DB) gorm.DB使用这样的函数类型可以帮助我们灵活地配置SQL 条件

zhouxing9454 commented 2 months ago

image

zhouxing9454 commented 2 months ago

https://juejin.cn/post/7025222833798119454

zhouxing9454 commented 1 month ago

image

zhouxing9454 commented 1 month ago

cleanenv库配置config.yaml环境变量,如果字段是数组类型可以使用env-separator:",",也就是逗号分割数组元素 image

zhouxing9454 commented 1 month ago

nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题。

zhouxing9454 commented 1 month ago

brew install scrcpy brew install --cask android-platform-tools(Homebrew >= 2.6.0) scrcpy --turn-screen-off(熄屏使用)

安卓手机投屏(需要进入开发者模式,打开usb调试)