代码改变世界

GO FMT包 翻译

2013-01-07 09:47 by Danny.tian, 470 阅读, 0 推荐, 收藏, 编辑
摘要:Fmt包import "fmt"简介▾Package fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C但更简单一些。输出格式:一般:%v 基本格式的值。当输出结构体时,扩展标志(%+v)添加成员的名字。the value in a default format. when printing structs, the plus flag (%+v) adds field names%#v 值的Go语法表示。%T 值的类型的Go语法表示。%% 百分号。布尔型:%t 值的true或false整型:%b 二进制表示%c 数值对应的Uni 阅读全文

Go Web开发之Revel - 模板

2013-01-07 09:44 by Danny.tian, 3629 阅读, 0 推荐, 收藏, 编辑
摘要:Revel 使用Go Templates. 它搜索两个目录来查找模板:应用程序的 views 目录和全部子目录Revel自己的 Templates 目录Revel为错误页面提供模板(在开发模式中显示友好的编译错误), 但是应用程序可以通过创建一个相同名字的模板来重写它, 例如app/views/errors/500.html渲染上下文Revel使用RenderArgs的数据字典执行模板. 除了应用程序提供的数据外, Revel提供了下面的入口:"errors" -Validation.ErrorMap返回的字典"flash" - 前一个请求的flash数 阅读全文

Go Web开发之Revel - 返回值

2013-01-06 18:09 by Danny.tian, 3599 阅读, 0 推荐, 收藏, 编辑
摘要:返回值必须返回一个 rev.Result, 它处理response的生成并依附于一个简单的接口:type Result interface { Apply(req *Request, resp *Response)}rev.Controller提供几个方法来生成结果:Render, RenderTemplate - 渲染一个模板, 传递参数.RenderJson, RenderXml - 序列化一个结构的json或xml.RenderText - 返回一个纯文本response.Redirect - 重定向到另一个action或URLRenderFile - 返回一个文件, 通常作为一个... 阅读全文

交叉编译Go程序

2013-01-06 15:06 by Danny.tian, 1152 阅读, 0 推荐, 收藏, 编辑
摘要:(1)首先进入go/src 源码所在目录,执行如下命令创建目标平台所需的包和工具文件。$ cd /usr/local/go/src$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ./make.bash如果是 Windows 则修改 GOOS 即可。$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ./make.bash(2) 现在可以编译 Linux 和 Windows 平台所需的执行文件了。$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build$ CGO_ENABLED=0 GOOS. 阅读全文

从零到 Go:24 小时内登上 Google 主页的 Go 语言应用“火鸡”doodle 开发纪实

2013-01-06 14:38 by Danny.tian, 437 阅读, 0 推荐, 收藏, 编辑
摘要:从零到 Go:24 小时内登上 Google 主页的 Go 语言应用“火鸡”doodle 开发纪实 阅读全文

Go Web开发之Revel - Session/Flash

2013-01-06 09:55 by Danny.tian, 3285 阅读, 1 推荐, 收藏, 编辑
摘要:Revel提供两个基于cookie的存储机制.// A signed cookie (and thus limited to 4kb in size).// Restriction: Keys may not have a colon in them.type Session map[string]string// Flash represents a cookie that gets overwritten on each request.// It allows data to be stored across one page at a time.// This is commonly 阅读全文

Go Web开发之Revel - 验证

2013-01-05 10:24 by Danny.tian, 2614 阅读, 0 推荐, 收藏, 编辑
摘要:Revel提供内建的函数来验证参数.这里有一对部件:一个验证上下文收集器和消息验证错误(keys和消息)帮助函数检查数据并把错误信息加入上下文一个模板函数从验证上下的key获得错误信息更深入的了解验证可以看一下 示例demo内联错误信息这个示例演示用内联错误信息验证字段.func (c MyApp) SaveUser(username string) rev.Result { // Username (required) must be between 4 and 15 letters (inclusive). c.Validation.Required(username) ... 阅读全文

Go Web开发之Revel - 参数绑定

2013-01-04 12:36 by Danny.tian, 3510 阅读, 2 推荐, 收藏, 编辑
摘要:Revel尝试尽可能简单的转换参数到Go的类型.这个转换从string到另一种类型被称为数据绑定.参数全部的请求参数被收集到一个Params对象中.它包括如下:URL 路径参数URL 查询参数表单值 (Multipart or not)上传文件定义如下(godoc)type Params struct { url.Values Files map[string][]*multipart.FileHeader}这个嵌入的url.Values (godoc)提供了访问简单值的方式,但是开发人员将使用更容易的Revel数据绑定机制来查找非字符串值.Action参数参数可以直接作为方法的参... 阅读全文

Go Web开发之Revel - 路由

2013-01-03 14:33 by Danny.tian, 4289 阅读, 0 推荐, 收藏, 编辑
摘要:路由使用原始的Play!语法定义,定义被保存在routes文件中.基础语法:(METHOD) (URL Pattern) (Controller.Action)下面这个例子展示了所有的使用方法# conf/routes# This file defines all application routes (Higher priority routes first)GET /login Application.Login <b># 一个简单的路径</b>GET /hotels/? Hotels.Index ... 阅读全文

Go Web开发之Revel - 概述

2013-01-03 10:43 by Danny.tian, 1667 阅读, 0 推荐, 收藏, 编辑
摘要:一个Controller是任意嵌入rev.Controller的类型 (直接或间接嵌入)典型的:type AppController struct { *rev.Controller}目前,rev.Controller必须作为struct中的第一个元素rev.Controller是请求的上下文.它包括请求和相应数据.详情请见the godoc,下面是Controller的定义type Controller struct { Name string // The controller name, e.g. "Application" Type ... 阅读全文