在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
注意:这些“坑”不是bug,只是自己当时没搞明白。 用到的框架为 Beego 1、字典 map 是“引用类型”,本身就是指针,作为参数传递时,直接传 map 变量名即可(不要传 map 变量指针)。
例如 Beego 控制器属性 Data,如果 其他的地方需要用到这个变量,直接传入 Data 变量名即可,参考代码如下: # 控制器内代码 # // 预处理 func (c *PassportController) Prepare() { // 核对 用户会话状态(是否已登录) res := passportService.ManagerCheckLoginSession(c.Ctx, c.Data) println(res.Msg) } # 调用到的方法 # func (s *PassportService) ManagerCheckLoginSession(Ctx *context.Context, Data map[interface{}]interface{}) *beego.Result { // ...代码省略 }
2、go 文件 不能以“_”为前缀,否则 go 底层会忽略它的存在(即文件不起作用,里面的代码也就不起作用) 如:_templatefunc.go 这个文件是无效的
3、编译时报错:import cycle not allowed Golang 不允许循环导包,否则,会在编译时报错,通常是因为设计错误 或 包的规划有问题,例如 import( "package A" "package B" ) 如果 package A 中已经导入 package B,而本 package A 中又导入 package B 或者 package A 依赖package B,同时 package B 依赖 package A 这样就会在编译时报 "import cycle not allowed"。 如何避免重复导入包的问题,就需要在设计时规划好包。 详细查看:http://ju.outofmemory.cn/entry/230115
4、被 [荐][容易出错] Golang 局部变量 初始化 := 的陷阱
5、Go语言第一深坑:interface 与 nil 的比较 |
请发表评论