Go decimal

本文主要介绍 Go 十进制包:https://github.com/shopspring/decimal 的使用。 概要 支持任意精度十进制数。 注意:decimal包只能支持小数点2^31位的数字。 特点 零值为0,无需初始化即可安全使用 加,减,乘不损失精度 指定精度的除法 支持 Database/sql 序列化/反序列化 支持JSON 和 XML 序列化/反序列化 安装 要求:Go 版本 >=1.7 1 go get github.com/shopspring/decimal 使用示例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 package main import ( "fmt" "github.

Go 定时任务

本文主要介绍 Go 定时任务包:https://github.com/robfig/cron 的使用。 快速上手 下载包,截至本文发布,版本为:v3.0.1 1 go get github.com/robfig/cron/v3@v3.0.1 简单示例: 每三秒打印字符串blog.mango.im,后面死循环保证主 Goroutine 不退出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 package main import ( "github.

Go Web 示例: JSON

JSON 以下示例展示使用encoding/json包编码和解码 JSON 数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 // json.go package main import ( "encoding/json" "fmt" "net/http" ) type User struct { Firstname string `json:"firstname"` Lastname string `json:"lastname"` Age int `json:"age"` } func main() { http.

Go Web 示例: Session

Sessions 他的示例将展示如何使用 Go 中流行的 gorilla/sessions 包在会话 cookie 中存储数据。 Cookie 是存储在用户浏览器中的小块数据,并在每次请求时发送到我们的服务器。 在它们中,我们可以存储例如 用户是否登录到我们的网站并弄清楚他是谁(在我们的系统中)。 在这个例子中,我们将只允许经过身份验证的用户在 /secret 页面上查看我们的秘密消息。 要访问它,首先必须访问 /login 以获取有效的会话 cookie,从而使他登录。此外,他可以访问 /logout 以撤销对我们秘密消息的访问权限。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 // sessions.

Go Web 示例: Websockets

Websockets 这个例子将展示如何在 Go 中使用 websockets。 我们将构建一个简单的服务器,它会回显我们发送给它的所有内容。 为此,我们必须像这样获取流行的 gorilla/websocket 库: $ go get github.com/gorilla/websocket 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 // websockets.