注意:这些“坑”不是bug,只是自己当时没搞明白。

用到的框架为 Beego

1、字典 map 是“引用类型”,本身就是指针,作为参数传递时,直接传 map 变量名即可(不要传 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变量作用域的坑

[荐][容易出错] Golang 局部变量 初始化 := 的陷阱

5、Go语言第一深坑:interface 与 nil 的比较

[Go] 开发 go web 项目,踩到的一些“坑”的更多相关文章

  1. 26.使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及时显示修改后的页面

    转自:https://blog.csdn.net/yuxxz/article/details/51318908 使用IntelliJ IDEA开发Java Web项目时,修改了JSP后刷新浏览器无法及 ...

  2. 在linux上部署自己开发的web项目

    在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...

  3. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  4. MyEclipse开发Java Web项目步骤

    1.安装工具 第一步,下载安装JDK,并配置环境: 配置环境变量步骤: (1)新建变量名:JAVA_HOME,变量值为JDK的安装路径: (2)打开PATH,添加变量值:%JAVA_HOME%\bin ...

  5. eclipse开发创建web项目

    1.打开eclipse,界面如下: 2.首先配置tomcat,操作:Windows--->perferences 如下: 3.操作:server--->Runtime Environmen ...

  6. 使用intelliJ IDE开发java web项目

    <!-- spring版本号 --> <spring.version>4.3.0.RELEASE</spring.version> <!-- mybatis版 ...

  7. 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

    上篇博文我们介绍了mybatis的基本概念与原理,这篇博文我们通过Spring与Mybatis集成,开发一个简单用户增删改查的Web项目. 基本准备工作 1.安装JDK1.6以上版本,安装与配置 2. ...

  8. 使用IntelliJ IDEA 开发Java Web项目

  9. web项目踩坑过程

    sql函数设计: 一开始本来是直接用Java的jdbc直接传输操作语句的.但后来学了存储过程发现存储过程可以提高不少的效率.就重构了自己对数据库的操作代码.包括:开启,查找,修改,关闭. 开启:直接使 ...

随机推荐

  1. PL/SQL第三章 基础查询语句

    --查询所有列 select * from tab_name|view_name; SELECT * FROM emp; SELECT * FROM (SELECT * FROM emp); --查询 ...

  2. Android命令Monkey压力测试,详解

    一.Monkey 是什么?Monkey 就是SDK中附带的一个工具. 二.Monkey 测试的目的?:该工具用于进行压力测试. 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出 ...

  3. typeof引发的思考

    今天在群里看到一位网友提问:var status=1; typeof status 结果输出什么 我会心一笑  ,这尼玛这么简单,一看就是‘number’,结果网友说不是number,而是string ...

  4. JProfiler 入门教程

    推荐文章:JProfiler 入门教程 一.安装JProfiler 从http://www.ej-technologies.com/下载5.1.2并申请试用序列号 二.主要功能简介 1.内存剖析 Me ...

  5. webservice restful一个小例子

    需求 公司有一个产品,包括前台WEB界面和多个后台服务,各个服务都需要在前面界面中进行配置和控 制,以调整服务的行为.以前,配置文件都存放在数据库中,界面上修改配置后入库,并发送消息(Socket)通 ...

  6. canvas图像保存

    很多时候绘制完成的图片需要保存,那么我们就可以使用到Canvas API来完成这最后一步! Canvas API使用toDataURL方法把绘画的状态输出到一个data URL中然后重新装载,然后我们 ...

  7. 《剑指offer》青蛙跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 很裸的斐波那契数列. class Solution { public: int jumpFloor ...

  8. #8 //HDU 5730 Shell Necklace(CDQ分治+FFT)

    Description 给出长度分别为1~n的珠子,长度为i的珠子有a[i]种,每种珠子有无限个,问用这些珠子串成长度为n的链有多少种方案 题解: dp[i]表示组合成包含i个贝壳的项链的总方案数 转 ...

  9. HDU3336 Count the string KMP 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU3336 题意概括 给T组数据,每组数据给一个长度为n的字符串s.求字符串每个前缀出现的次数和,结果mo ...

  10. BZOJ2669 [cqoi2012]局部极小值 状压DP 容斥原理

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2669 题意概括 有一个n行m列的整数矩阵,其中1到nm之间的每个整数恰好出现一次.如果一个格子比所 ...