• 分类:【Golang
  • 浏览【168】
  • 评论【0】
  • 更新【2018-6-29 21:05:59】

go可以很容易实现一个文件服务器,只需要使用函数 func ServeFile(w ResponseWriter, r *Request, name string)即可。 package main import ( "log" "net/http" "fmt" ) func helloHandler(res http.ResponseWriter, req *http.Request) { http.ServeFile(res, req, "E:/go-work/src/go-learning/foo.xlsx") } func main() { fmt.Println("web

阅读全文
  • 分类:【Golang
  • 浏览【408】
  • 评论【0】
  • 更新【2018-4-15 21:21:36】

beego注解路由匹配不到,返回404页面 router.go使用了两种方式注册路由: ns := beego.NewNamespace("/admin", beego.NSRouter("/", &controllers.UserController{}, "get:Welcome"), beego.NSInclude( &controllers.UserController{}, ), controller中的路由注解设置: // @router /admin/user/get-all-user [get] func (c *UserGroupController) GetA

阅读全文
  • 分类:【Golang
  • 浏览【276】
  • 评论【0】
  • 更新【2018-4-09 19:08:42】

go语言可以很轻松的实现并发获取数据,就算是新手也可以按部就班的套用现成的并发模式来实现并发。以下是一个简单的测试程序,其中有串行,并行。 package main import ( "sync" "time" "fmt" ) func main() { syncFunc() fmt.Println(">>>>>>>>>>>>>>>") asyncFunc() fmt.Println(">>>>>>>>>>>>>>>") asyncChanFunc() } // 串行执行 func syncFunc() { var n,m,x int start := time.Now(

阅读全文
  • 分类:【Golang
  • 浏览【243】
  • 评论【0】
  • 更新【2018-4-05 10:21:56】

go test命令是一个按照一定的约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的源文件并不是go build构建包的一部分,它们是go test测试的一部分。 在\*_test.go文件中,有三种类型的函数:测试函数、基准测试函数、示例函数。一个测试函数是以Test为函数名前缀的函数,用于测试程序的一些逻辑行为是否正确; go test命令会调用这些测试函数并报告测试结果是PASS或FAIL。基准测试函数是以Benchmark为函数名前缀的函数,它们用于衡量一些函数的性能;go test命令会多次运行基准函数以计算一个平均的执行时间。示例函数是以Example为函

阅读全文
  • 分类:【Golang
  • 浏览【336】
  • 评论【0】
  • 更新【2018-3-19 11:27:57】

一、 包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块,当然Go的import还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" //当前文件同一目录的model目录,但是不建议这种方式import 绝对路径 import "short

阅读全文
  • 分类:【Golang
  • 浏览【696】
  • 评论【0】
  • 更新【2017-6-16 23:03:25】

以实际遇到过得情况为例,用户的数据结构中有类型为日期类型time.Time的createdAt属性,经过反复的格式化处理,在页面上输出的还是2017-05-31 06:49:09 +0800 CST这种格式,所以猜想日期类型是不能直接输出2017-05-31 06:49:09格式的,只能输出格式化后的字符串类型。于是利用go的继承将User的数据结构继承都UserPojo里,再单独对createdAt进行修改,重写为string类型。 package main import "fmt" import "time" type User struct { name string

阅读全文
  • 分类:【Golang
  • 浏览【1065】
  • 评论【0】
  • 更新【2017-5-25 23:34:49】

原生的go推荐目录是 ├─bin ├─pkg ├─src bin目录放二进制文件,可以是编译后的可执行文件,也可以是安装的第三方命令行,比如beego的命令行工具会安装在bin目录。pkg存放第三方依赖,src存放代码文件。单个项目没什么疑问,就这么存放,主要是有多个项目的时候对新手来说会有点迷糊,就像我,建立了两个项目就像进了迷宫,提交到git上就更乱了,究其原因是把bin目录和pkg目录当做项目源码的一部分了。其实这两个目录是作为公共目录存在的,多个项目公用。src目录下也是可以有多个项目的,每个项目有自己独立的文件夹。 .src\ ├─project1 ├─project2 ├─pro

阅读全文
  • 分类:【Golang
  • 浏览【3054】
  • 评论【0】
  • 更新【2016-9-12 21:16:23】

为了获取json类型的参数煞费苦心,差点不再爱了。 前端请求代码: $.ajax({ url: "/user", type: "post", data: JSON.stringify({username:"张三",mobile:"13265478965"}), //这才是最重要的地方,必须用JSON.stringify序列化成字符串, //直接使用对象死活都接收不到,至于大小写并不影响,只要写对了就行 dataType: "json" }).done(function(res) { if(res.result){ aler

阅读全文