采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
反复看了前面的视频,难道我看漏了么,突然间就多了个这个方法?
年后课程计划做升级优化,不知道小伙伴是否方便加好友,想收集收集意见,了解下都有哪些地方可以进行优化改进和提高学习效果呢。后续有问题可以随时沟通联系~
同学您好, 视频里没有对课程代码里的每个方法都有讲解,这个ParseRows方法目前已经在视频里添加了瞄点作为补充说明,可以刷新4-3小节看看哈。另外具体代码也可以在git仓库中查看:
https://git.imooc.com/coding-323/filestore-server/src/charter4/db/mysql/conn.go
很抱歉因为这个问题造成同学们的疑惑, 也非常感谢同学的批评和提醒。
以下为ParseRows方法的具体代码,我补充了一些注释, 如果还有疑问随时欢迎拍砖哦~~
func ParseRows(rows *sql.Rows) []map[string]interface{} { // 获取记录列(名) columns, _ := rows.Columns() // 创建列值的slice (values),并为每一列初始化一个指针 // scanArgs用作rows.Scan中的传入参数 scanArgs := make([]interface{}, len(columns)) values := make([]interface{}, len(columns)) for j := range values { scanArgs[j] = &values[j] } // record为每次迭代中存储行记录的临时变量 record := make(map[string]interface{}) // records为函数最终返回的数据(列表) records := make([]map[string]interface{}, 0) // 迭代行记录 for rows.Next() { //每Scan一次,将一行数据保存到record字典 err := rows.Scan(scanArgs...) checkErr(err) for i, col := range values { if col != nil { record[columns[i]] = col } } records = append(records, record) } return records }
这方法是不难,翻一下源码就算没注释的确能理解.不过突然出现我还以为之前看视频那个节迷糊过去了,寻思着回头翻翻看看还有哪个地方听漏的.反复看折腾了大半夜. 说都没说,就在评论区里面提到一句不是每个方法都可以讲这个我且不说对不对(虽然我在慕课网那么多门课没遇见过而且我觉得很敷衍),但是莫名出现一个方法对那种每一分钟都对着认真学认真敲的人实在太伤了.
严重接受同学的批评,没注意到这个问题会造成这么大的困惑,这方面我现在马上改进,把目前想到的一些没讲清楚的方法先在视频对应位置添加瞄点和补充说明,同时git仓库代码也同步优化一下,后续再补录一些内容。
登录后可查看更多问答,登录/注册
紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员
1.3k 23
2.1k 13
1.6k 13
1.2k 13
1.3k 13