posted @ 2015-01-29 10:26
01 2015 档案
摘要:labix.org/v2/mgo/bson 包虽然是MongoDB的golang实现,其中产生唯一ID的算法是独立的,不依赖MongoDB, 提炼这部分的代码如下: package main import ( "crypto/md5" "crypto/rand" "encoding/binary" "encoding/hex...
阅读全文
摘要:先看实现代码: package main import ( "crypto/md5" "encoding/hex" "fmt" ) func main() { h := md5.New() h.Write([]byte("123456")) // 需要加密的字符串为 123456 cipherStr :...
阅读全文
posted @ 2015-01-28 16:41
摘要:先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { ...
阅读全文
posted @ 2015-01-28 15:17
摘要:Linux下终端控制台字体颜色 在使用putty、secureCRT、XShell等终端仿真器连接linux系统时,ls、vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性。 通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m",可以输出红色的字体“Red Text”。其中:"\033[31m...
阅读全文
posted @ 2015-01-22 16:16
摘要:iota是golang语言的常量计数器,只能在常量的表达式中使用。 iota在const关键字出现时将被重置为0(const内部的第一行之前),const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。 举例如下: 1、iota只能在常量的表达式中使用。 fmt.Println(iota) 编译错误...
阅读全文
posted @ 2015-01-14 16:55
摘要:Go 支持按照条件编译,具体来说它是通过 go/build包 里定义的tags和命名约定来让Go的包可以管理不同平台的代码 。 我们这里以下面这个开源项目为例,来看Go的按条件编译, 这个开源项目是把Go的os包进行了扩展。 https://bitbucket.org/kardianos/osext/src osext 是获得当前执行程序的执行目录和文件信息。 执行情况如下...
阅读全文
posted @ 2015-01-05 16:23