注意:这些“坑”不是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. PYTHON-模块 json pickle shelve xml

    """ pickle 和 shevle 序列化后得到的数据 只有python才能解析 通常企业开发不可能做一个单机程序 都需要联网进行计算机间的交互 我们必须保证这个数据 ...

  2. C++ Primer读书笔记(1)

    指针和引用 引用本身不是一个对象,因此不能定义引用的指针:而指针是一个对象,因此可以定义指针的引用. 此外,要理解一个复合类型的变量到底是什么类型,最简单的办法是从右向左阅读其定义,离变量名最近的符号 ...

  3. laravel 列表搜索查询(when,with用法以及关联图像id处理图像路径)

    laravel中比较常规的列表查询: /** * 活动列表 * @param Request $request * @return \Illuminate\Http\JsonResponse */ p ...

  4. Thread类中的join方法

    package charpter06; //类实现接口public class Processor implements Runnable { // 重写接口方法 @Override public v ...

  5. nexus 2版本的配置要点

    nexus 3版本,集成了太多容器化功能,暂时不需要用. 现在主要关注nexus2版本. https://help.sonatype.com/repomanager2/download https:/ ...

  6. HBuilder支持jquery、zepto、angular、ext、dojo 等js框架的提示吗

    HBuilder有通行的js扫描分析提示,大部分js库都可以方便的提示.但js是一门超级灵活的语言,通行分析有时分析的不够完美,如果对框架做单独优化配置,可以有更好的提示.DCloud官方对jquer ...

  7. 【UER #1】DZY Loves Graph(待卡常数)

    题解: 正解是可持久化并查集 但这个显然是lct可以维护的 但这常数是个问题啊??? #include <bits/stdc++.h> using namespace std; struc ...

  8. java:打印菱形图案(传参打印的自定义字符和行数)

    打印菱形图案: 代码实现: public class Hello { public static void main(String args[]) { LingXingPrint("#&qu ...

  9. Codeforces Round #144 (Div. 2) D table

    CodeForces - 233D 题目大意给你一个n*m 的矩阵,要求你进行涂色,保证每个n*n的矩阵内都有k个点被涂色. 问你一共有多少种涂色方案. n<=100 && m& ...

  10. 010 Spark中的监控----日志聚合的配置,以及REST Api

    一:History日志聚合的配置 1.介绍 Spark的日志聚合功能不是standalone模式独享的,是所有运行模式下都会存在的情况 默认情况下历史日志是保存到tmp文件夹中的 2.参考官网的知识点 ...