最近在做一个无代码(低代码)项目,由于初期设计时,表结构是完全向用户开放的,即使用了gorm也无法使用struct声明,全部使用interface或是map来进行操作,类似下图是一段写数据操作,data是restful得到的标准json。用了这种方法后就可以通过restful随意定义table、column、row三个维度。
这种做法倒是解决了Go不像Python那么灵活的问题,变得相当灵活……而且写久了,习惯于所有函数都不使用struct,但是总感觉哪里不太对,看了一些开源的大神项目,没有这么干的……
想问问,不使用struct,会不会造成效率低下,内存占用过多,或是运行不稳定之类的其他问题?
实在是想不明白,求大神赐教!
```go
func InsertRow(tableName interface{}, data map[string]interface{}) (message string) {
table := fmt.Sprintf("%s", tableName)
err := db.Table(table).Create(data)
if err.Error != nil {
logger.Error(err)
message = fmt.Sprintf("%s", err.Error)
} else {
message = fmt.Sprintf("Insert data into table %s successfully.", tableName)
}
return
}
```