Go语言中文网 为您找到相关结果 240

Go学习笔记之:if else 条件判断

Go语言的条件判断结构也很简单。 package main import "fmt" func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4 == 0 { fmt.Println("8 is divisible by 4") } // if条件可以包含一个初始化表达式,这个表达式中的变量 // 是这个条件判断结构的局部变量 if num := 9; num < 0 { fmt.Println(num, "is negative") } else if num < 10 { fmt.Println(num, "has ...阅读全文

博文 2014-11-27 23:00:03 Goopand

重量级爬虫软件Pholcus

# pholcus [![GoDoc](https://godoc.org/github.com/tsuna/gohbase?status.png)](https://godoc.org/github.com/henrylee2cn/pholcus) [![GitHub release](https://img.shields.io/github/release/henrylee2cn/pholcus.svg)](https://github.com/henrylee2cn/pholcus/releases) Pholcus(幽灵蛛)是一款纯Go语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批...阅读全文

Go 系列教程 —— 8. if-else 语句

这是我们 [Golang 系列教程](https://golangbot.com/learn-golang-series/)的第 8 篇。 if 是条件语句。if 语句的语法是 ```go if condition { } ``` 如果 `condition` 为真,则执行 `{` 和 `}` 之间的代码。 不同于其他语言,例如 C 语言,Go 语言里的 `{ }` 是必要的,即使在 `{ }` 之间只有一条语句。 if 语句还有可选的 `else if` 和 `else` 部分。 ```go if condition { } else if condition { } else { } ``` if-else 语句之间可以有任意数量的 `else if`。条件判断顺序是从上到下。如果 `i...阅读全文

博文 2017-12-09 10:24:21 Dingo1991

golang中new和make区别

golang 中有两个内存分配机制 :new和make,二者有明显区别. new:用来初始化一个对象,并且返回该对象的首地址.其自身是一个指针.可用于初始化任何类型 make:返回一个初始化的实例,返回的是一个实例,而不是指针,其只能用来初始化:slice,map和channel三种类型 package main import ( "fmt" ) func main() { a := new([]int) fmt.Println(a) //输出&[],a本身是一个地址 b := make([]int, 1) fmt.Println(b) //输出[0],b本身是一个slice对象,其内容默认为0 } 通过这个例子可以看出,当对slice,map以及channel进行初始化时,使用make比n...阅读全文

golang初始化结构体数组

最近组里新项目要求用go来写,没办法只能边看文档边写代码,今天遇到郁闷的问题,查了好久最终发现居然是一个标点符号的导致的,遂纪录之 刚刚给一个接口写单元测试时想初始化一个结构体数组,然后遍历该数组并建立http.Request进行测试,结果一直报错,最后。。。才发现golang结构体初始化的正确姿势T_T 1 requests := []AuthRequest{ 2 AuthRequest{ 3 "plain", 4 "xl_test@xunlei.net", 5 "123456", 6 "smtp", 7 3, 8 "192.168.34.104", 9 "client.example.com", 10 }, 11 AuthRequest{ 12 "plain", 13 "xl_test@...阅读全文

博文 2017-12-28 19:00:08 lit10050528

golang返回值为interface{}的类型判断

看标题就知道,这是一个很简单的问题,就一个函数的事,但是,今天一同学golang的几个人中,已经不止一个人问我了,在这里我就说一下,也希望对不清楚的娃有些许帮助,大神别喷,飘过就行了。 大家知道,golang对于不确定返回值可以用interface{}代替,这确实很方便,但是也带来了问题,那就是如何判断返回值是什么类型的?其实可以用反射也就是reflect来判断,通过函数 reflect.TypeOf() 即返回类型! $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2016-04-10 20:00:01 u013025612

Go - 以任意类型的slices作为输入参数(译)

文:Go – taking slices of any type as input parameters 译者:youngsterxyf 最近参与的一个业余项目,go-linq,让我了解到Go语言的类型系统并不是为任何类面向 对象编程而设计的。没有泛型,没有类型继承,也没有提供任何对这些特性有用的东西。 但是,提供了一个名为interface{}的类型,你可以向其赋予几乎任意类型的值,不会抛出编译错误,就像.NET的Object或Java的Object: var o interface{} o := 3.14 o := Student{Name: "Ahmet"} 我们假设你需要一个可以接收任意类型slices的函数,如果考虑如下这样实现: func Method(in []interfac...阅读全文

博文 2014-11-05 09:52:11 youngsterxyf

GO中怎么处理URL编码?

比如我有一串字符串格式的URL,例如下边这样: %5B%7B%22ip%22%3A%22119.90.49.95%22%2C%22port%22%3A%228074%22%7D%2C%7B%22ip%22%3A%22119.90.49.110%22%2C%22port%22%3A%228050%22%7D%2C%7B%22ip%22%3A%22119.90.49.92%22%2C%22port%22%3A%228057%22%7D%2C%7B%22ip%22%3A%22119.90.49.104%22%2C%22port%22%3A%228016%22%7D%2C%7B%22ip%22%3A%22119.90.49.104%22%2C%22port%22%3A%228017%22%7D%2...阅读全文

上海游戏公司golang招聘

上海某国企背景游戏公司招聘服务器开发,服务器主程岗位,没啥要求,只要懂go语言就可以了,2年以上工作经验,薪资待遇包你满意,公司前台是一个大美女,人事部门美女如云,公司也可以提供住宿,想换工作的同时想找女朋友的一定要联系我,QQ:1418087976...阅读全文

go语言的hashmap

go语言中map的数据结构,以下只摘取了关键的几个属性: struct Bucket { uint8 tophash[BUCKETSIZE]; // top 8 bits of hash of each entry (0 = empty) Bucket *overflow; // overflow bucket, if any byte data[1]; // BUCKETSIZE keys followed by BUCKETSIZE values }; struct Hmap { uint8 B; // log_2 of # of buckets (can hold up to LOAD * 2^B items) byte *buckets; // array of 2^B Bucket...阅读全文

博文 2015-05-18 03:00:01 richmonkey

Gogland如何编译项目

项目中一共两个类,main.go调用了cmd.go中的方法。但是在编译的时候,说找不到cmd.go中的方法。看网上的文章,需要设置Run/Debug Configuration,但是按照文章做完之后,发现如下报错。 ![1489632129.png](http://studygolang.qiniudn.com/170316/1ee933517040ca4ea258f7347bd46dfe.png) 我项目的结构和Run/Debug Configuration的设置如下: ![1489632185(1).png](http://studygolang.qiniudn.com/170316/28510c1febe7481dff6ae6cc6e3f6577.png) ![...阅读全文

go-mysql,一个易用的mysql接口框架实现

介绍 go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mysql最先开始于mixer(一个用go实现的mysql proxy)中,随着mixer的演化,我觉得有必要将其mysql模块独立出来使用。对于mixer,后续我会详细介绍。 为什么要自己实现一套新的接口,而不是go自身的sql接口呢?最主要的原因在于我很不习惯使用Query的查询方式。go自身的query例子: age := 27 rows, err := db.Query("SELECT name FROM users WHERE age=?", age) i...阅读全文

博文 2014-10-15 00:19:21 siddontang

Golang Read File line by line

学习什么语言都得从读文件开始,好像记得一个大神说过计算机编程就是"打开文件,操作,关闭文件"。初学Golang就记一下go语言的文件操作 Read File func main(){ rw,err := os.Open("") if err != nil { panic(err) } defer rw.Close() rb := bufio.NewReader(rw) for { line, _, err := rb.ReadLine() if err == io.EOF { break } //do something fmt.Println(string(line)) } } func main(){ rw,err := os.Open("") if err != nil { panic...阅读全文

博文 2015-06-17 20:03:57 liuyingming910

vim tagbar gotags无效,求大神答疑

![1.png](http://studygolang.qiniudn.com/151119/df8a3d0ae3e8f84ae5575051fad1c9e8.png) tagbar装上了 ![3.png](http://studygolang.qiniudn.com/151119/77642b703d66049b435da5c797e5babd.png) gotags也装上了 ![4.png](http://studygolang.qiniudn.com/151119/715fe1563d4a608d1fff654d08f0a5ee.png) vimrc配置文件 ![2.png](http://studygolang.qiniudn.com/151119/45c0c81b01f...阅读全文

[Golang]也许有你不知道的,Array和Slice(1)

Golang中的array 在golang中,array是同一类型的元素的有序排列,长度不能更改,占用内存上的一段连续空间。 1)基础 首先看看array的声明: [plain] view plaincopyprint?var justiceArray [3]string var justiceArray [3]string 以上声明了justiceArray是为有3个元素的string数组,括号里面的数字是必须的,不能省略。 另外说明一下,[3]string与[2]string是两种不同类型的array。 现在对其赋值:[plain] view plaincopyprint?justiceArray = [3]string{"Superman", "Batman", "Wonder Wom...阅读全文

博文 2015-03-06 12:00:01 abv123456789

北京线下讲座 - PHP程序员的GO语言之路

【活动主题】 | PHP程序员的GO语言之路 —— 底层技术晋级指南 【活动性质】 l 免费 【活动介绍】 Go语言是谷歌推出的一种编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性,完美解决了其他动态语言并发协程时阻塞的问题。本次大讲堂从PHP底层技术出发,深入浅出的介绍了GO语言的概念本质与学习思路,并加以程序实例演示,为程序员底层技术晋级铺路。 【内容大纲】: 1:php程序员的底层技术晋级之路 2:遍地是坑的C,c++ 3:GO语言特性介绍 4:GO语言语法介绍 5:GO语言与PHP的比较 6:go-mysql-driver包,让你知道PHP的mysql扩展是怎样写成的 【讲师介绍】: ...阅读全文

go-mysql,一个易用的mysql接口框架实现

go-mysql是一个用go写的mysql driver,使用接口类似于go自身的database sql,但是稍微有一点不同,现阶段还不支持集成进go database/sql中,但实现难度并不大,后续可能会接入。 go-mysql最先开始于mixer(一个用go实现的mysql proxy)中,随着mixer的演化,我觉得有必要将其mysql模块独立出来使用。对于mixer,后续我会详细介绍。 有博文进行较详细的介绍:[go-mysql,一个易用的mysql接口框架实现](http://studygolang.com/articles/1422...阅读全文

用记事本写一个go的helloworld,带有中文,执行go run 时提示“ invalid UTF-8 encoding”,求大神指点

编译过程如下: E:\005GitHub\GoStudy>go run TestGo.go # # command-line-arguments #.\TestGo.go:6:27: invalid UTF-8 encoding ``` package main import "fmt" func main(){ fmt.Printf("hello world.你好,世界!") } ``` 在使用Pycharm中的Go语言插件进行编译不会出现问...阅读全文

深入学习golang(4)—new与make

Go语言中的内建函数new和make是两个用于内存分配的原语(allocation primitives)。对于初学者,这两者的区别也挺容易让人迷糊的。简单的说,new只分配内存,make用于slice,map,和channel的初始化。 1. new 这是一个用来分配内存的内建函数,但是与C++不一样的是,它并不初始化内存,只是将其置零。也就是说,new(T)会为T类型的新项目,分配被置零的存储,并且返回它的地址,一个类型为*T的值。在Go的术语中,其返回一个指向新分配的类型为T的指针,这个指针指向的内容的值为零(zero value)。注意并不是指针为零。 Go语言中的对象没有C++中的构造函数,如果用C来描述,Go中的new大概相当于: T *t = (T*)malloc(sizeof...阅读全文

博文 2014-10-04 19:26:15 hustcat

Go怎么操作h5的localStorage缓存

急求大神告诉,Go能不能操作h5的localStorage,如果能怎么清除localStorage缓存的数据,如果不能,该怎么办?在退出登录的时候清除localStorage缓存。下面是退出代码,怎加上清除localStorage func Logout(c *middleware.Context) { c.SetCookie(setting.CookieUserName, "", -1, setting.AppSubUrl+"/") c.SetCookie(setting.CookieRememberName, "", -1, setting.AppSubUrl+"/") c.Session.Destory(c) c.Redirect(setting.AppSub...阅读全文

Go 边看边练 -《Go 学习笔记》系列(四)

上一篇: Go 边看边练 -《Go 学习笔记》系列(三) 2.1 表达式 语言设计简练,保留字不多。 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 2.2 运算符 全部运算符、分隔符,以及其他符号。 + & += &= && == != ( ) - | -= |= || < <= [ ] * ^ *= ^= <- > >= { } / << /= <<= ++ = := , ; % >> %= >>= -- ! ... . : &^ ...阅读全文

博文 2015-09-04 21:38:47 88250

关于json解析的问题,求教各位大神

您好,我刚学golang,有个解析json的问题请教各位,谢谢了,我写了以下代码,s1和s2的值能够得到,但是s3中的p1和p2的值不知如何解析到: var filterInfoList map[string]interface{} strFilter := `{"s1":"ddd","s2":"ppp","s3":[{"p1":"ok1"},{"p2":"ok2"}]}` err := json.Unmarshal([]byte(strFilter), &filterInfoList) if err != nil { fmt.Println("error in translating,", err.Error()) return } fm...阅读全文

go使用protobuf如何判断接收到的数据?

我是刚学go的小白,最近参考golang服务器写了一个通讯程序,golang作为服务器用tcp连接unity3d,传输消息用的是protobuf。但是目前遇到一个问题就是客户端发送消息过来(有可能是各种消息,角色移动,角色请求,角色死亡等)服务器这边如何判断具体应该是哪一个消息呢?我给消息加了消息头原本是想通过消息头判断的,但是才发现protobuf在反序列化的时候就必须指定类型了,例如: mp := &message.ConnetInf{} err := proto.Unmarshal(data, mp) 反序列化时必须指定mp是我发送的ConnetInf消息。但是目前问题是在我不确定mp是什么类型的时候该如何反序列化呢?不知有没有做过的大神给指点一两句。谢谢了T ...阅读全文

google go 语言介绍(二)

分号 你可能已经注意到我们的程序没有分号。在Go的代码中,唯一你经常可以看到分号的地方是分割for循环的子句。在每句语句的结尾分号并不是必须的。 实际上,go像C或Java这样的常规语言一样使用分号,但是这些分号被自动的插入到语句的结尾处,你不需要手工的去输入这些分号。 关于分号更细节的信息可以查看语言规范,但是在本文中你所要知道的就是你不需要在语句末尾加上分号。(如果要在一行中写多个语句,你就需要在语句结尾加上分号)作为特别的帮助,你可以在大括号关闭符号前的语句省略分号。 这种方式提供了一个清晰的,无分号的代码。一个值得注意的地方是,撰写例如if这样的语句,大括号开始符号必须与if处于同一行;否则可能会导致编译错误或者得到一个错误的结果(译注:类似于c/c++/java语言的 if(xx)...阅读全文

博文 2014-10-04 19:26:21 fffvvvzz