go mod 方式创建的项目
假如我有如下目录结构
models
├── dir1
│ ├── menu.go
│ ├── role.go
│ └── user.go
├── dir2
│ ├── role.go
│ └── user.go
├── system.go
└── others.go
我现在想把 models 下所有的.go 文件的 package 都定义为 models,但是这样定义了子目录下的想过models.
的方式来访问却不行
好像只能将 dir1 下的 package 定义为 dir1,然后在impor "models/dir1"
,最后通过dir1.
访问
还有一个问题就是我上面有 2 个 user.go 都定义了 User struct,在使用 gorm 创建表能分别指定表名吗?还是说只能将 struct 定义成不一样来搞定了?
1
catror 2020-07-29 16:13:05 +08:00 via Android
多个目录就是多个 package,不存在一个 package 多个目录这样的说法。
gorm 可以支持指定表名。 |
3
Carlgao 2020-07-30 09:30:58 +08:00
没有必要这么定义目录层级,我猜 Go 这么设计 package 是高内聚的考虑
你把每个 model 都定义一个 struct,每个 struct 对应一个 model,然后把函数都绑定到这个 struct 上就行了 这样调用的时候就是 models.xModel{} models.xxxModel{} |