Golang 使用FreeType-go进行字体

FreeType库(http://www.freetype.org/)是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows FON/FNT, X11 PCF等。支持单色位图、反走样位图的渲染。      freetype-go就是用go语言实现了FreeType驱动。它的项目地址: https://code.google.com/p/freetype-go ...阅读全文

2013-11-27 14:12 ghj1976
阅读:9990 评论:1

golang 类型断言与反射

session("user")是在另一个页面设置的,存储了一个models.User类型的struct var user models.User u := this.GetSession("user") 获得session  user,这里u是一个interface user = u.(models.User)  类型断言,我断言这个U的类型就是models.User类型的,然后我把他赋值给另一个models.User类型的变量 fmt.Println(user.Id) 这里我...阅读全文

2014-03-19 17:16 别人说我名字很长
阅读:4783 评论:0

【转】Go语言反射规则

Go语言反射规则 - The Laws of Reflection 转:http://my.oschina.net/qbit/blog/213720 原文地址:http://blog.golang.org/laws-of-reflection 介绍 反射在计算机的概念里是指一段程序审查自身结构的能力,主要通过类型进行审查。它是元编程的一种形式,同样也是引起混乱的重大来源。 在这篇文章里我们试图阐明Go语言中的反射是如何工作的。每种语言的反射模型是不同的(许多语言不支持反射),然而本文只与Go有关...阅读全文

2014-10-22 15:35 starlion
阅读:2521 评论:1

golang web开发获取get、post、cookie参数

golang web开发获取get、post、cookie参数 在成熟的语言java、python、php要获取这些参数应该来讲都非常简单,过较新的语言golang用获取这些个参数还是费了不少劲,特此记录一下。 golang版本:1.3.1 在贴代码之前如果能先理解一下golang http.request的三个属性Form、PostForm、MultipartForm应该能较好的理解代码,下面摘录一下。 Form、PostForm、MultipartForm说明 简要说明一下 Form:存储了...阅读全文

2015-01-30 10:28 stephen830
阅读:8657 评论:0

golang 标准库io/ioutil,读取文件,生成临时目录/文件

1.读取目录 list, err := ioutil.ReadDir("DIR")//要读取的目录地址DIR,得到列表 if err != nil { fmt.Println("read dir error") return } for _, info := range list { //遍历目录下的内容,获取文件详情,同os.Stat(filename)获取的信息 info.Name()//文件名 info.Mode()//文件权限 info.Size()//文件大小 info.ModTime...阅读全文

2015-03-17 10:31 benlightning
阅读:12064 评论:0

GoLang redis 连接池

最近被日志是折腾得死去活来,写文件无疑效率是最高的,但是分布式又成问题,虽然稍微折腾一下配合NFS,还是可以搞一搞的,但是始终语言设计没有那么方便。 最终决定用redis,换了redis以为就好了,因为内存运行嘛,谁知道tcp连接开销大得一塌糊涂,服务器负载一下子高了许多,使用netstat -an 查看发现一堆的 TIME_WAIT,连ssh到服务器都巨慢无比,所谓天下武功唯快不破,这么慢80岁老太太跳一支广场舞都能给灭了吧。 既然 tcp连接开销这么大,当然首要任务就是解决连接问题,明显一个...阅读全文

2015-05-07 13:46 echo不惑
阅读:31561 评论:10

golang类型断言

golang的接口类型是golang的一大神器,下面我们来看看如何将接口类型转换成其他的类型 package tests import ( "fmt" "github.com/go-xorm/core" "github.com/go-xorm/xorm" _ "github.com/lunny/godbc" "os" "testing" "zks.com/business/module" ) var DBE *xorm.Engine func Test_InitDb(t *testing.T) ...阅读全文

2015-01-29 13:12 niechaoya
阅读:4249 评论:0

使用Redis做任务队列(Golang)

在上篇用纯go在本机模拟了下分布式队列的东西。这里补上Redis队列部份。 用Redis做队列有下面三个问题需解决: 1. 队列构建 使用Redis的RPUSH/LPOP来解决 2. 参数传递/解析 客户端将JOSN参数存入Redis,Server端取出后解析还原。 3. 连接池 redigo支持Redis连接池 下面代码就是具体解决实现: //Redis做后台任务队列 //author: Xiong Chuan Liang //date: 2015-3-25 package main impo...阅读全文

2015-03-25 15:18 xcltapestry
阅读:9113 评论:0

golang 文件(文件打开,文件写入,文件读取,文件删除)的基本操作

代码如下 复制代码 package main import ( "bufio" //缓存IO "fmt" "io/ioutil" //io 工具包 "io" "os" ) func check(e error) { if e != nil { panic(e) } } /** * 判断文件是否存在 存在返回 true 不存在返回false */ func checkFileIsExist(filename string) (bool) { var exist = true; if _, err ...阅读全文

2016-02-22 18:58 moontower
阅读:9241 评论:0

golang笔记——string

任何语言中,字符串操作API都是非常重要的,有些还是熟记比较好,当然如果记不住可以去看源码文件,不得不说GO语言源码看起来非常舒服。 字符串操作相关的API大多封装在 strings 包里,下面列一些常见的 func Count(s, sep string) int 获取指定子字符串的个数 func Contains(s, substr string) bool 判断是否包括某子字符串 func ContainsAny(s, chars string) bool 判断是否包括某字符串中的做任意一...阅读全文

2016-03-04 11:35 tianyajuanke
阅读:3322 评论:0

Golang实现ping

ICMP部分的结构 报头 ICMP报头从IP报头的第160位开始,即第20个字节开始(除非使用了IP报头的可选部分)。 Bits 160-167 168-175 176-183 184-191 160 Type Code 校验码(checksum) 192 ID 序号(sequence) Type - ICMP的类型,标识生成的错误报文;Code - 进一步划分ICMP的类型,该字段用来查找产生错误的原因.;例如,ICMP的目标不可达类型可以把这个位设为1至15等来表示不同的意思。Checksu...阅读全文

2016-04-13 21:43 simplelovecs
阅读:7347 评论:0

用Golang写一个搜索引擎

用Golang写一个搜索引擎 猜你喜欢 golang入门-- 一个2D的图形库学习 golang入门--一个简单的http client golang的第一个deadlock LiteJob,一个Golang的本地任务调度器 再次自我黑客马拉松--不用第三方库实现一个基于golang的web service 如何利用golang 反射值来定义一个变量 用Golang写一个搜索引擎 用Golang写一个搜索引擎(0x01) 用Golang写一个搜索引擎(0x02) 用Golang写一个搜索引擎(0...阅读全文

2016-04-14 14:46 daisongwan
阅读:4654 评论:0

一个简单的例子阐述Go的对象复用思想

本来想写一个例子来给团队的人阐述一下Go中的对象复用思想,写完后发现这种思想也许某些同学还不知道,现分享出来。 // Go中为了减少海量的内存分配,控制垃圾回收时间,对于热点数据采用池的思想去处理是 // 非常棒的,下面的例子就是一个简单的tcp读取缓存池复用 // 实现了一个读取tcp长连接的buffer池,每次读取一条新连接时,先去池里读取 // 如果不存在,则创建新的 // 注意buf在放回池里时,没有进行归零处理,因为conn.Read每次读取时候, // 都会从buf.b[0]的位置开...阅读全文

2016-04-14 17:40 abv123456789
阅读:2899 评论:0