go语言json操作

可使用go语言官方的package中的”encoding/json”来处理json数据,详细可以参考json包的示例。 还有一种更简单直接的方法,使用github.com/bitly/go-simplejson包,这个包封装了encoding/json里的Unmarshal和Marshal方法,提供更易用的接口。 地址:https://github.com/bitly/go-simplejson 文档:http://godoc.org/github.com/bitly/go-simplejson...阅读全文

铁哥的博客 2013 年 08 月 07 日 铁哥

go语言读文件

读写文件是最基本的功能。 go语言读文件挺有意思,由于go语言的interface,使得go语言与其他语言有所不同。与其他语言一样,go语言有File类型的结构体,但File只提供了最基本的Read,Write等功能,而类似 与ReadLine这样的功能实在bufio包里提供的。 第一种方法,使用最传统的方式,Open,Read,Close,代码如下: //file1.go package main import ( "fmt" "os" ) func main() { f, err := os...阅读全文

铁哥的博客 2013 年 08 月 06 日 铁哥

发现了两个不错的golang的package

一个完整的golang的第三方package在这里:https://code.google.com/p/go-wiki/wiki/Projects 其中,我对这几个非常感兴趣: 1 一个验证码的包:captcha ,可以生成图片的验证码或者音频验证码,从示例上看,图片验证码挺不错的,源代码在这里: https://github.com/dchest/captcha 没有版权限制。 2 一款国人写的cms:toropress,这个没有出现在这份列表中,但成熟度已经非常高了,基于beego框架,be...阅读全文

铁哥的博客 2013 年 07 月 27 日 铁哥

golang的package

golang的package和其他语言的组织方式完全不同,刚开始接触时,很不适应。 我觉得go的package有两个很大的特点: 1、go的package超越了文件的概念; 2、go的package是以绝对路径GOPATH来寻址的,不要用相对路径来import 在同一个package里,多个文件被go编译器看作是一个文件一样,因此,这多个文件中不能出现相同的全局变量和函数,一个例外是init函数;而同一个package的不同文件可以直接引用相互之间的数据。 (adsbygoogle = wind...阅读全文

铁哥的博客 2013 年 07 月 19 日 铁哥

深入讨论channel timeout

Go 语言的 channel 本身是不支持 timeout 的,所以一般实现 channel 的读写超时都采用 select,如下: select { case <-c: case <-time.After(time.Second): } 这两天在写码的过程中突然对这样实现 channel 超时产生了怀疑,这种方式真的好吗?于是我写了这样一个测试程序: package main import ( "os" "time" ) func main() { c := make(chan int, 10...阅读全文

skoo's notes 09 July 2014 skoo

正确使用Go的Timer

我们总是会使用Timer去执行一些定时任务,最近在Go语言的定时器使用上面不小心踩到一点问题,这里记录一下。 go demo(input) func demo(input chan interface{}) { for { select { case msg <- input: println(msg) case <-time.After(time.Second * 5): println("5s timer") case <-time.After(time.Second * 10): prin...阅读全文

skoo's notes 06 July 2014 skoo

Go Runtime hashmap实现

前两天有小伙伴问道是否看过 Go 语言 map 的实现,当时还真没看过,于是就花了一点时间看了一遍 runtime 源码中的 hashmap 实现。map 的底层实现就是一个 hash 表,大体结构上和平时在脑海里的 hash 表差不多,但确实有很多细节(“Devils in the details”)。 hashmap 通过一个 bucket 数组实现,所有元素将被 hash 到数组中的 bucket 中,bucket 填满后,将通过一个 overflow 指针来扩展一个 bucket 出来形...阅读全文

深入Go语言网络库的基础实现

Go语言的出现,让我见到了一门语言把网络编程这件事情给做“正确”了,当然,除了Go语言以外,还有很多语言也把这件事情做”正确”了。我一直坚持着这样的理念——要做"正确"的事情,而不是"高性能"的事情;很多时候,我们在做系统设计、技术选型的时候,都被“高性能”这三个字给绑架了,当然不是说性能不重要,你懂的。 目前很多高性能的基础网络服务器都是采用的C语言开发的,比如:Nginx、Redis、memcached等,它们都是基于”事件驱动 + 事件回掉函数”的方式实现,也就是采用epoll等作为网络收...阅读全文

skoo's notes 21 April 2014 skoo

golang讲解(go语言)标准库分析之os/exec

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库 今天我们讲os/exec包,这个我就不废话了 (1)func LookPath(file string) (f string, err error)这个是搜索可执行的二进制的文件的路径,返回的是执行路径和error [php] import ( "fmt" "os/exec" ) func main() { f, err := exec.LookPath("php") if e...阅读全文

微度网络 2014-01-06 widuu

Go 应用程序构建浅析

要理解并灵活运用一个语言,我觉得有必要了解其构建应用程序的内部机制。经过这段时间对GO的接触,个人对GO构建程序的方式挺满意:简单、直接、灵活。下面就对GO语言构建应用程序的方法进行一个浅显的分析。 构建一个GO项目,我们只需设置好工程工作目录,并在该目录下新建名为src的文件夹,然后将你的源文件放到src下就行了。为便于理解,这里给出一个简单项目的例子进行具体说明。 环境变量:GOPATH =path/to/GoPro:$GOPATH GoPro/ bin/ hello pkg/ linux_...阅读全文

CSDN博客 2014-03-27 22:15 u013148156

beego orm自动建表时字段default值不设置的解决办法

在使用beego的orm建表时,我的模型是这样建立的 type Test struct { Id int64 Name string Sex int64 `orm:"default(1)"` Age int64 Content string `orm:"default('')"` } content字段设置默认为空,Sex字段设置默认为1,那么生成的表确并没有default,这不科学,于是我翻了下源码,发现设置default的这段被注释了,位置在 github.com/astaxie/beego...阅读全文

开源中国博客 2014-11-15 11:44 别人说我名字很长

Go 语言在谷歌:以软件工程为目的的语言设计

文章译者:fbm, Khiyuan, ljb_iss, darkxinyu, jimmyjmh, nesteaa, asdfsx 出处:oschina 原文链接:http://www.oschina.net/translate/go-at-google-language-design-in-the-service-of-software-engineering?lang=chs&# Go 语言在谷歌:以软件工程为目的的语言设计 英文原文:Go at Google: Language Design...阅读全文

CSDN博客 2013-11-17 12:32 leonzhouwei

GO windows安装于使用

看到网上有很多在window安装Go 教程 说的多又复杂 所以这段时间系统的学习了一下 Google 的 Go 语言发现用起来特别方便 适合一些 小的程序开发 于c++相比起来 性能几乎差不多(个人意见) 下面就送上 Go 安装与使用 下载 https://golang.org/dl/ cmd ->go 或者 set go 或者 go env 跳出下面这句话安装成功 Go is a tool for managing Go source code. 下面就可以开始测试啦 sublime 编辑器 ...阅读全文

ITEYE博客 5 小时前 Demon_311

Go 语言将迁移到 GitHub

Go 成为开源项目已经有 5年历史了,越来越多人在 GitHub 上使用 Go,Go 团队觉得应该加入他们的行列,决定将 Go 项目迁移到 GitHub 上。 今天,Go 团队计划将 Go 项目以及旗下的所有子库都迁移到 GitHub,issue tracker 和 wiki 也会一起迁移,所有的数据都会被保留下来。Go 团队将会使用一个 Google-hosted 的代码审查 Gerrit 实例。 这次 Go 项目的切换将会在 1.4 版本发布后(12 月份),所有 1.5 版本都将会在 Gi...阅读全文

ITEYE资讯 2014-11-14 17:00 mengyidan1988

Go Open Source

Go Open Source (wang hailong) Go Apache, go Sourceforge.net, go GNU (if you use linux). go 3D engine list. (if you like 3D Game, VR) start from www.quakesrc.org. Open Source Project 提供了大量的高质量的软件产品,而且对程序员来说,是最好的教程。 看到文章说,韩国把游戏开发作为大学课程,并把游戏产业提高到战略高度。Op...阅读全文

CSDN博客 2003-03-07 08:44 buaawhl

[Go]简易聊天实现

实现逻辑1、Golang 版本 1.32、实现原理: 1、主进程建立TCP监听服务,并且初始化一个变量 talkChan := make(map[int]chan string) 2、当主进程ACCEPT连接请求后,利用go 启动一个协程A去维持和客户端的连接,把taokChan带入到协程里 3、和客户端建立连接的协程A,发送消息给客户端,使其发送自己的用户信息。 4、协程A在收到客户端发送的用户信息后,建立一个此用户对应的管道 talkChan[uid] = make(chan string)...阅读全文

CSDN博客 2014-11-09 13:58 abv123456789