分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
go语言结构体有一个特殊的用法:结构体内嵌一个其他类型的结构体指针,就可以使用内嵌结构体的方法。看代码(摘自studygolang的源码,数据库模块,dao.go)
type Dao struct {
*sql.DB
// 构造sql语句相关
tablename string
where string
whereVal []interface{} // where条件对应中字段对应的值
limit string
order string
// 插入需要
columns []string // 需要插入数据的字段
colValues []interface{} // 需要插入字段对应的值
// 查询需要
selectCols string // 想要查询那些字段,接在SELECT之后的,默认为"*"
}
这样就可以直接把Dao指针当做是一个sql.DB指针,
比如sql.DB有方法 Query Exec Prepare等等,在这里就可以直接写成这样
func (this*Dao)Query(strsql string){
this.Prepare(strsql)
}
这个用法很神奇唉,不知道还有没有别的巧妙用处
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信8273 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传