golang struct转map

struct转map package main import ( "fmt" "reflect" "time" ) type User struct { Id int64 Username string Password string Logintime time.Time } func Struct2Map(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v...阅读全文

开源中国博客 2014-08-14 14:27 别人说我名字很长

golang学习的点点滴滴:指针,地址,形参,实参

学习Go语言的过程中,会发现它的指针,地址,还有函数参数跟平常我们理解的不太一样. 上代码: package main   //学习指针用法   import (     "fmt" )   func main() {     var i int;          // i 的类型是int型     var p *int;             // p 的类型是[int型的指针]         i = 1;              // i 的值为...阅读全文

开源中国博客 2014-09-29 22:03 亓斌哥哥

golang 数组

声明数组 简单声明数组 //声明一个2个元素的数组,名字为shuzu1,因为是int型数组,所以初值为0,即[0,0] var shuzu1 [2]int //声明一个2个元素的数组,名字为shuzu2,并同时赋初值,{}里为空,说明没有赋初值,等同于上面 shuzu2 := [2]int{} 声明数组并同时赋初值 //声明一个2个元素的数组,名字为shuzu3, shuzu3_1, shuzu3_2,并同时赋初值,结果均为[1,2] shuzu3 := [2]int{1,2} //...阅读全文

开源中国博客 2013-04-22 15:44 waynehu

golang http

1 package main   2    3 import(   4         "fmt"   5         "net/http"   6         "io/ioutil"   7 )   8 func main(){   9   10         response,_:=http.Get("www.//127.0.0.1.com")  11         defer response.Body.Close()  12         body,_...阅读全文

开源中国博客 2014-02-21 12:03 昏鸦

golang reflect

这个程序看到几点: 1 TypeOf和ValueOf是获取Type和Value的方法 2 ValueOf返回的<float64 Value>是为了说明这里的value是float64 3 第三个b的定义实现了php中的string->method的方法,为什么返回的是reflect.Value[]数组呢?当然是因为Go的函数可以返回多个值的原因了。 package main import( "fmt" "reflect" ) type MyStruct struct{ name str...阅读全文

开源中国博客 2014-08-12 10:49 千山万水

golang https

Go支持https协议的简单例子 我们知道除了http方式访问网页之外,还有一种加密的https方式。Go语言的net/http包中包含了这种https页面访问方式的支持。net/http包中的ListenAndServeTLS就是提供这个功能的。我们可以先看一下这个函数的原型。 func ListenAndServeTLS(addr string, certFile string, keyFile string, handler Handler) error 从上面的函数原型我们可以...阅读全文

开源中国博客 2014-09-11 20:25 flyking

golang坑

1.新建文件后再删除失败,提示文件正在被另一程序使用中(The process cannot access the file because it is being used by another process.) func main() { NewConfigIni() DeleteConfigTemp() } func DeleteConfigTemp() { path := "time.ini" err := os.Remove(path) //如果文件不存在时执行会...阅读全文

开源中国博客 2014-09-23 14:14 陈好

golang学习的点点滴滴:匿名字段

定义一个struct,定义的时候是字段名与其类型一一对应,实际上Go语言支持只提供类型,而不写字段名的方式,也就是匿名字段,或称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。 让我们来看一个例子,让上面说的这些更具体化。 package main import "fmt"   type Human struct {     name string     age int     weight i...阅读全文

开源中国博客 2014-09-29 22:09 亓斌哥哥

Sublime Text 给golang 加点料。自定义build

如果你用的时windows , 请自觉忽略, linux && mac 通用。 Sublime Text 有个 gosublime ,用来提供golang的语法解析以及提示什么的。 说实话,我一直想要一个匹配自己开发环境的编译器, 不用来回切换到命令行去build 自己的代码。 先说,我的项目目录是这样的: project/ project/build project/package1 project/package2 每个目录都是独立的, 编译结果需要放到build 目录下。如果手动执行, 可...阅读全文

开源中国博客 2013-08-21 13:34 Able

golang学习的点点滴滴:并发超时处理

golang并没有在语言层次上提供超时操作,但可以通过一些小技巧实现超时。 原理: 并发一个函数,等待1s后向timeout写入数据,在select中如果1s之内有数据向其他channel写入则会顺利执行,如果没有,这是timeout写入了数据,则我们知道超时了。 package main  import "fmt" import "time" func main() { ch := make(chan int, 1) timeout := make(chan bool, 1) ...阅读全文

开源中国博客 2014-10-01 10:41 亓斌哥哥

Linux debian 上面使用七牛云存储,开发golang程序。(1)

想写点golang的程序,暂时没钱租服务器。 发现七牛支持golang开发。打算尝试下: 我的系统是debian。windows应该类似: 以前有开发googleappengine的经验。七牛也有类似的命令行,不过没有界面。 需要使用 qrsync 命令行辅助工具,  地址:http://docs.qiniutek.com/v3/tools/qrsync/ 有意思的是这个命令行工具是用golang开发的。所以支持多个操作系统。windows,l...阅读全文

开源中国博客 2012-12-21 00:34 freewebsys

golang 反射, 诡异的数据类型。 Type.Tag

最近再实现一些功能, 用到了protobuf 还有 xml 。从他们书写的类型或是测试用例中, 看到了大量这样的数据结构: type Person struct { Name string `xml:"name"` URI string `xml:"uri,attr"` Email string `xml:"email,omitempty"` InnerXML string `xml:",innerxml"` } 源码可以见xml/marshal_test.go http://golang.or...阅读全文

开源中国博客 2013-05-17 00:54 Able

gofn: golang 控制台源代码查询工具

golang作为开源项目,查询源代码,查看其具体实现及查看其包、函数的使用方法是非常常见的事情。 本人作为一名golang初学者,经常要查看源代码,经常要经过很多路径,最终打开了,可是花费的时间非常多,尽管目前无闻大神的gowalker提供了帮助,但是1.无网络情况下2.有网络的情况下,还是步骤多。3.初学者要查看高手的写法也是困扰我的一个方面。 故自己写了一个gofn,地址:https://github.com/eruca/gofn 还在改善...阅读全文

开源中国博客 2014-03-23 07:05 _毛虫

golang在ubuntu-12.04和centos-6.5上的安装

golang官方编译器安装与配置 安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的 $ sudo apt-get install bison gawk gcc libc6-dev make 安装mercurial工具,目的使用hg命令来提取golang的源代码 $ sudo apt-get install mercurial 代取提取,如果您的网速比较慢的话,此步要多花点时间,我是在/home目录下运行下面命...阅读全文

开源中国博客 2013-08-28 22:35 壬癸甲乙

数据结构-(队列顺序存储)循环队列的实现(golang)

import ( "errors" ) //循环队列结构体(顺序存储) type CirularQueue struct { elem []ElemType //储存的数据 front int //头指针 rear int //尾指针 } //初始化循环队列 func InitCQueue() *CirularQueue { cqueue := new(CirularQueue) cqueue.elem = make([]ElemType, MAXSIZE) cqueue.front = 0 c...阅读全文

新浪博客 (2016-01-11 16:23:50) 卑微了承诺-life

初识golang之数组,slice,map学习

数组: 定义方式:var arr [n]type,n表示数组的长度,type表示存储元素的类型。定义好后,可以使用arr[0] = 42,这样指定下标来进行数组的读取和赋值。 注意:在go中长度也是类型的一部分,因此[3]int和[5]int是不同类型的。 go中数组不可以改变长度,数组之间的赋值是值的拷贝赋值,即当把一个数组作为一个参数传人函数的时候,传入的其实是数组的备份。arr := [10]int{1,2,5:6},da := [2][4]int{[4]int{1,2...阅读全文

开源中国博客 2013-08-22 23:44 vcity