golang
文章平均质量分 68
eclipser1987
这个作者很懒,什么都没留下…
展开
-
go net 包详解1
/** * Created by Administrator on 13-12-9. */package mainimport ( "fmt" "os" "net")/** * 将string类型的ip地址转换为IP对象 */func main() { name := "192.168.1.97" ip := net.ParseIP(name) if ip原创 2013-12-10 17:27:51 · 15453 阅读 · 1 评论 -
关于云服务器
刚才和以前同学,聊到云服务器,分布式计算的问题。现在他用的hadoop的mapreduce。说实话hadoop的大名我的确有所耳闻。但可能处于某种偏执,我还是认为go语言是分布式,云计算的最佳选择。一个go语言分布式计算的雏形:可以用于理解chan,gorutinue,for,select的基础用法/** * Created by Administ原创 2013-12-11 15:11:02 · 1132 阅读 · 0 评论 -
go语言使用protobuf与c++做数据通信。
go语言使用protobuf与c++做数据通信。原创 2013-12-16 16:52:22 · 10269 阅读 · 0 评论 -
go语言与excel的序列化与反序列化(1)
很多时候,尤其是游戏开发中,策划往往将文档,数据等写入excel中,程序,需要通过各种方式解析excel,让程序可以读。常见的方案有:1.将excel转换为csv,逗号分割方式,程序通过split逗号按照特定格式进行转换。(功能不够强大,格式要求很严,无法灵活配置很多特殊的功能)2.将excel转换为lua table。这是C++游戏开发的常用方式。 (无法通过c++对象序列化为exc原创 2013-12-30 22:17:18 · 4136 阅读 · 0 评论 -
go语言RPC
RPC remote procedure call,远程过程调用。go语言对RPC的支持有以下要求:1.以对象形式注册RPC2.RPC函数必须是对象的公共函数。public,也就是首字母大写的函数3.RPC函数必须有2个参数,类型为公共类型,或go内嵌类型。4.RPC函数第2个参数作为返回值,必须是指针类型。5.RPC函数必须返回一个error类型的值。func原创 2013-12-31 16:17:06 · 6107 阅读 · 0 评论 -
go语言变参,匿名函数的多种用法
/** * Created by Administrator on 13-12-18. */package mainimport ( "fmt" "os")func f1(args ...interface {}) { f2(args...) f2(args[1:]...)}func f2(args ...interface {}) { for i, v := ra原创 2013-12-18 15:49:30 · 13624 阅读 · 1 评论 -
go hot update (1)
package mainimport ( "net" "reflect" "fmt" "os")func main() { listener, _ := net.Listen("tcp", ":8000") for { c , _ := listener.Accept() go connHandler(c) }}func connHandler(c net.原创 2014-01-02 21:37:13 · 1541 阅读 · 0 评论 -
go语言chan 和 routine活用
这里,我们以游戏中的一个情况为例。比如魔兽世界里的40人团队副本BOSS战,很多玩家同时攻击BOSS,BOSS的血量会进行平凡修改,我们要记录对BOSS的致命一击。常规 对BOSS血量的操作经行加锁,然后修改,每次攻击甚至还会判断怪物是否处于死亡状态以判断客户端是否能施放某个技能,但这样会让一个锁控制40个玩家的攻击操作,会导致攻击,技能等释放的不流畅。所以魔兽世界应该不是采用这种加锁的方式。为什原创 2013-12-23 14:25:25 · 13008 阅读 · 1 评论 -
通过chan控制多个goroutine
/** * Created by Administrator on 13-12-9. */package mainimport "fmt"import "time"func main() { closeChan := make(chan int, 3) go func() { i := 0 var flag int = 0 go func() { flag原创 2013-12-09 16:10:36 · 2414 阅读 · 0 评论 -
cgo
package main/*#include #include char* sayHello(char* name) { char* buf = (char*) malloc(64); sprintf(buf,"hello %s\n", name); return buf;}*/import "C"import "fmt"import "unsafe"func m原创 2013-12-09 17:20:06 · 952 阅读 · 0 评论 -
golang接口的实现以及注意事项。
package mainimport ( "fmt")type Animal interface { move()}type Human struct { i int}func (r Human) move() { // 注意 fmt.Println("人类行走") r.i++}type Bird struct { i int}func (r *Bir原创 2013-07-15 14:25:49 · 7054 阅读 · 0 评论 -
go 数组
package mainimport "fmt"import "reflect"func main() { var arr[5]int fmt.Println(reflect.TypeOf(arr)) var sli[]int fmt.Println(reflect.TypeOf(sli)) arr1 := [1]int{100}原创 2013-09-02 17:01:41 · 980 阅读 · 0 评论 -
go语言将函数作为参数传递
go语言函数作为参数传递,目前给我的感觉几乎和C/C++一致。非常的灵活。import "fmt"import "time"func goFunc1(f func()) { go f() }func goFunc2(f func(interface{}), i interface{}) { go f(i)}func goFunc(f原创 2013-09-17 15:06:20 · 25036 阅读 · 2 评论 -
go语言定时器
package mainimport "fmt"import "time"func main() { t := time.NewTimer(2 * time.Second) //v := <- t.C //fmt.Println(v) go onTime(t.C) fmt.Println("main thr原创 2013-09-17 15:41:57 · 10603 阅读 · 0 评论 -
go语言type使用小技巧
import "fmt"type Rank int const ( Rank001 Rank = iota Rank002 Rank003 Rank004)var rewards = [...]string{ "奖励1","奖励2","奖励3","奖励4",} func (r Ran原创 2013-09-17 19:59:01 · 4760 阅读 · 0 评论 -
go语言生产者,消费者事例
package mainimport "fmt"import "time"func main() { // ch := make(chan int, 10) ch := make(chan int) go produce("生产者1",ch) go produce("生产者2",ch) time.Slee原创 2013-09-26 15:50:27 · 2527 阅读 · 0 评论 -
go语言defer使用
deferGo语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的:func ReadWrite() bool原创 2013-09-27 12:53:54 · 34934 阅读 · 3 评论 -
go语言编写,简单聊天室程序 1
go语言网络编程,先从聊天室开始:/** * Created by Vicky.H on 13-12-6. * eclipser@163.com */package mainimport ( "fmt" "net" "strconv" "bytes" _ "bufio" _ "strings")var m map[string]*net.Connfu原创 2013-12-09 14:27:16 · 3350 阅读 · 1 评论 -
golang指针的使用,类似C语言
srcsrc\main\main.gosrc\model\model.gopackage modelimport "strconv"type User struct { username string password string age int32}func (this *User) String() string { return "username: "原创 2014-05-17 14:07:58 · 5547 阅读 · 0 评论