golang的channel使用

channel sample1 close twice ch := make(chan bool) close(ch) close(ch) // 这样会panic的,channel不能close两次 读取的时候channel提前关闭了 ch := make(chan string) close(ch) i := <- ch // 不会panic, i读取到的值是空 "", 如果channel是bool的,那么读取到的是false 向已经关闭的channel写数据http://...阅读全文

开源中国博客 2014-01-07 18:56 go-skyblue

【备份】golang开发环境搭建

硬盘坏了以前装的东西 装东西的时候还得现搜 所以决定写下来 以后可能用 到golang.org下载 安装包 如果被墙改host windows直接下载那个msi安装的 linux下载下来解压自己设置一下环境变量运行那个all.bash(好像是这个) 然后 在命令行运行输入go 输出帮助信息 就是安装成功了 下载sublime text2  安装sublime text 插件管理器 按CTRL+` 输入 import urllib2,os; pf='Package Control.su...阅读全文

开源中国博客 2013-02-28 14:59 羊刀怎么合

golang时间处理

golang 时间处理 package main import ( "fmt" "time" ) const ( date = "2006-01-02" shortdate = "06-01-02" times = "15:04:02" shorttime = "15:04" datetime = "2006-01-02 15:04:02" newdatetime = "2006/01/02 15~04~02" newtime ...阅读全文

开源中国博客 2014-03-19 14:41 别人说我名字很长

golang tips

回调函数的用法 //一个记录日志的类型:func(string) type saveLog func(msg string) //将字符串转换为int64,如果转换失败调用saveLog func stringToInt(s string, log saveLog) int64 { if value, err := strconv.ParseInt(s, 0, 0); err != nil { log(err.Error()) return 0 ...阅读全文

开源中国博客 2014-02-24 16:22 kuerant

Go语言实战 - revel框架教程之MongDB的最佳搭档revmgo

由于revel框架本身对于model层的编写没有提供任何指导,所以在设计这部分的时候就有些犹豫,反复斟酌到底怎样才算是最佳实践。 我在做山坡网的时候刚开始也纠结了一下,拿不准mongodb的session的创建和销毁应该在什么地方处理。直到有一天看到了revmgo的作者在与revel的作者讨论(具体内容在这里),就去研究了下revmgo,之后立即就用它替换了我自己的实现。 先说下用法吧。 1. 在app.conf添加mongodb的连接字符串。 revmgo.dial = mong...阅读全文

博客园 2013-08-20 14:37 AllenDang

golang教程

最近兴趣所致,打算写一本书《build-web-application-with-golang》 目前已经完成了前面两章 1.GO环境配置 1.1. GO安装 1.2. GOPATH 与工作空间 1.3. GO shell命令 1.4. GO开发工具 1.5. 小结 2.GO语言基础 2.1. 你好,GO 2.2. GO基础 2.3. 流程和函数 2.4. struct 2...阅读全文

开源中国博客 2012-09-02 10:07 astaxie

go是函数式编程语言吗?

2012-05-19 翻译自这里, 对原文有所扩展, 也有所删减.   go是函数式编程语言吗? 不是, 当然不是.   那么, go提供函数吗? 是的, 当然, 大多数编程语言都提供函数, go也不例外. 不相信吗? 我会用代码让你闭嘴: func SayHello() { fmt.Println("Hello") } 看见了吧. go使用关键字func定义函数, 并在函数体中编写函数逻辑.    go函数可以接受参数吗? 嗯, 我又看到一个白痴的问题, 呵呵. 哦, 我懂了,...阅读全文

博客园 2012-05-19 21:00 cool-xing

奇妙的go语言(聊天室的开发)

【 声明:版权全部,欢迎转载,请勿用于商业用途。  联系信箱:feixiaoxing @163.com】    这是一篇关于聊天室开发的博客,原来文章的地址来自于此。这篇文章非常具有代表性,对于代码中的函数部分内容,不想多说什么,仅仅是对它的实现进行一些必要的解说。关于代码,大家既能够在这里阅读,也能够跳转到那篇博客,继续阅读。package main import( "fmt" "os" "net" ) ////////////////////////////////////////...阅读全文

博客园 2014-08-09 17:50 yxwkf

go map操作需要注意的地方

map 数据直接赋值,或者作为函数参数传递时是 指针传递, 修改其中一个则会修改全部变量数据 func main() {     var s_map = make(map[int]int)     for i := 0; i <= 5; i++ {         s_map[i] = i     }     fmt.Println(s_map)     s_map2 := s_map     s_map2[10] = 100     fmt.Println(s_map)     fmt.P...阅读全文

开源中国博客 2013-12-07 10:40 984195889

golang手动管理内存

作者:John Graham-Cumming.   原文点击此处。翻译:Lubia Yang 前些天我介绍了我们对Lua的使用,implement our new Web Application Firewall.  另一种在CloudFlare (作者的公司)变得非常流行的语言是Golang。在过去,我写了一篇 how we use Go来介绍类似Railgun的网络服务的编写。 用Golang这样带GC的语言编写长期运行的网络服务有一个很大的挑战,那就是内存管理。 为...阅读全文

开源中国博客 2013-11-09 11:28 lubia

解决github.com/mattn/go-sqlite3 驱动中的utc时区变为本地系统时...

今晚 在拿sqlite3来做个小demo,驱动用到github.com/mattn/go-sqlite3 发现 就算写入 time.now() 都不是本地时区,于是乎到github.com/mattn/go-sqlite3去查看代码,发现 https://github.com/mattn/go-sqlite3/blob/master/sqlite3.go#L324 这个链接里面高亮的 部分是utc ,最后解决办法是把自己本地源码的sqlite3.go 第324行改成一下: ...阅读全文

开源中国博客 2013-09-04 02:41 错了