【go语言】Goroutines 并发模式(二)

前言 在Goroutines 并发模式(一)中,我们简单地通过boring函数的例子来粗略地阐述了通过channels来和goroutines交流的方法。在本篇中,我将从pattern的方向出发,通过对boring函数的例子进行各种改写,来讲解几种常见了goroutines的并发模式。 并发模式 让我们先来回顾一下boring函数的例子。 func boring(msg string, c chan string) {    for i := 0; ; i++ {         ...阅读全文

开源中国博客 2014-05-31 21:31 何良瑞Nyanko君

为什么go语言适合开发网游服务器端

前段时间在golang-China读到这个贴:有木人用(或打算)golang做游戏服务器端?  个人觉得golang十分适合进行网游服务器端开发,写下这篇文章总结一下。   从网游的角度看: 要成功的运营一款网游,很大程度上依赖于玩家自发形成的社区。只有玩家自发形成一个稳定的生态系统,游戏才能持续下去,避免鬼城的出现。而这就需要多次大量导入用户,在同时在线用户量达到某个临界点的时候,才有可能完成。因此,多人同时在线十分有必要。   再来看网游的常见玩法,除了排行榜这类统计和数据汇总的功能外,基本...阅读全文

博客园 2012-09-11 15:37 Lifehacker

GO(golang)语言学习(1)

GO(golang)语言学习(1)   1.导入包,一个主函数中只有一个main函数,包含一个main包,主函数中我们要申明main的包!   package main func main(){ }   2.引入包文件,譬如我们使用的是fmt包,打印helloword用,golang有一个包可见性的定义,就譬如其他语言中的private 、protected这些声明。当手写字母是小写的就是包内可用,包外就不可以用了,手写字母大写,引用包的就可以使用!举个例子:fmt.Println();我们...阅读全文

ITEYE博客 2014-07-18 13:24 stephen830

初识go语言,写了个递归题目作为helloworld

上周D总在公司TTT上普及了go,当时只是概念上知道这门语言,D总出的小题目我用Java写了类似于DP的算法,被宣布太耗内存^^。这两天在公交上看了会reference(http://golang.org),最喜欢的特性是goroutines、多返回值和并列赋值/声明。觉得光看没用,还是写个helloworld吧,想到之前看到过一个这样的题目: 一颗二叉树,其节点上不均匀的分布了若干石头,石头数跟二叉树总节点数相同,石头只能在边上(即父子节点之间)进行搬运,每次只能搬运一颗石头。求使每个节点石...阅读全文

博客园 2012-12-28 00:48 leoyonn

go channel的一些技巧

1. 一个已经被关闭的 channel 永远都不会阻塞。当一个 channel 一旦被关闭,就不能再向这个 channel 发送数据,但仍然可以尝试从 channel 中获取值。 2. 已经被关闭的 channel 会实时返回。 package main import ( "fmt" "sync" "time" ) func main() { const n = 100000 finish := make(chan bool) var done sync.Wai...阅读全文

开源中国博客 2013-08-23 14:52 壬癸甲乙

关于go接口的一些说明

什么是接口 接口是golang最重要的特性之一,在Go中,接口interface其实和其他语言的接口意思没什么区别。interface理解其为一种类型的规范或者约定。一种类型是不是“实现”了一个接口呢?就看这种类型是不是实现了接口中定义的所有方法。接⼝是一个或多个方法签名的集合,任何非接口类型只要拥有与之对应的全部方法实现 (包括相同的名称、参数列表以及返回值。),就表示它"实现" 了该接口,无需显式在该类型上添加接口声明。此种方式又被称作Duck Type。 接口的实例化 ...阅读全文

开源中国博客 2013-08-30 14:40 壬癸甲乙

go语言一——基础

参考《Go_web_编程.pdf》 See Also: Go 语言简介(上)— 语法 Go 语言简介(下)— 特性 首先编写一个简单的脚本hello.go /* * 定义包名 * main 表示可独立运行 * [other] 编译生成.a文件 */ package main /* * 引入系统级别包 fmt */ import "fmt" // main.main 是每一个可执行程序的入口点 func main() { fmt.Printf("Hello, world ...阅读全文

ITEYE博客 2013-08-02 10:56 ciaos

go处理json格式文件

关注开源中国很久了,但是一直没有发表过博客,原因是觉得自己能力还不够,因为这里的人们都让我仰望啊。一直在CSDN坚守着,但是,最近却总觉得那里气氛不对,遂来到了这里,来发表自己的看法,还有自己的学习笔记。        工作中使用的是go语言,其实自己学习的也不是很深入,只是勉强可以用来编几行代码,出了问题还是要跟API求救,曾设想过去读源码,但是却一直没有决心,幸好有很多testcase,提供了调用函数的方法。      花了好长时间,总是没有办法把我定义的文件decode了,把s...阅读全文

开源中国博客 2013-05-30 18:30 lunar_stud

go语言,简单分析和了解

Go 本地化 该指南也有其他语言版本: Brazilian Portuguese — Português do Brasil Catalan — Català Spanish — Español French - Français Hebrew — עִבְרִית Japanese — 日本語 Korean — 한국어 Romanian - Română Chinese — 普通话   Go Playground 这个指南构建在 Go Playground 之上,这是一个运行在 golan...阅读全文

博客园 2014-08-02 18:15 liyuzhao

goalng导出excel(csv格式)

最近项目中有个小需求,需要将查询结果导出到excel。之间前java比较容易,使用POI很容易就能实现,查了下golang的文档,发现golang下边并没有导出excel的包,但是却有一个encoding/csv的包,看了下发现可以导出csv文件,大家都知道csv文件其实就是文本格式的excel文件,可以直接通过excel打开或是导入excel。     看起来挺好的,问题如愿解决,但是事实证明对已一个还不成熟的语言或是库最好还是先测一下的好。兴冲冲的卸了测试例子,成功导出了一个text.cs...阅读全文

博客园 2014-07-20 19:40 good-temper

go install runtime/cgo: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied

在做更新时,收到下面提示: go get  github.com/astaxie/beego go install runtime/cgo: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied 看目录下,也没有cgo.a 文件。   所以是找不到这个文件报的错误,而不是没有权限的问题。通过sudo来设置权限是不能解决这个问题的。 http://www.cnblogs.com/ghj1976/...阅读全文

博客园 2014-06-18 06:42 ghj1976

go语言学习小结(一)

学习go。记录下 1),package、import     这两个功能在现在的很多语言(java、C#)都具备了。这里面引入包在C家族确实是个很好的东西,使得代码组织更清晰;import而不是include头文件,完全剔除了c家族的弊病。 2),变量命名风格的改变    定义变量:      var i int跟C家族语法int i;相去甚远,貌似更接近delphi、javascript、scala风格。当然在语法分析中这样定义变量比C风格的定义是更容易识别的。    类型推导:      类...阅读全文

ITEYE博客 2013-03-01 10:45 hemowolf