golang的socket编程

在Go的net包中定义了很多类型、函数和方法用来网络编程,其中IP的定义如下: type IP []byte 输入的IP地址需要解析,以免输入的是错误格式的IP地址: func ParseIP(s string) IP 参数s可以是字符串类型的ipv4或ipv6地址,如果解析错误会返回nil。 在Go语言的net包中有一个类型TCPConn,这个类型可以用来作为客户端和服务器端交互的通道,他有两个主要的函数: func (c *TCPConn) Write(b []byte) (n...阅读全文

开源中国博客 2013-11-18 17:37 壬癸甲乙

golang slice Append

s2 := append(s1, *) 切片s1上记录的切片信息复制给s2,1.如果s1指向的底层array长度不够,append的过程会发生如下操作:内存中不仅新开辟一块区域存储append后的切片信息,而且需要新开辟一块区域存储底层array(复制原来的array至这块新array中),最后再append新数据进新array中,这样,s2指向新array。2.如果s1指向的底层array长度够,s2和s1指向同一个array,append的结果是内存中新开辟一个区域存储新切片信息。开辟一块...阅读全文

开源中国博客 2013-12-29 12:32 咖啡伴侣

golang test 说明解读

本文为转载,原文地址:http://www.cnblogs.com/yjf512/archive/2013/01/22/2870927.html go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译...阅读全文

开源中国博客 2014-02-10 11:30 koalaone

golang test说明解读

go test是go语言自带的测试工具,其中包含的是两类,单元测试和性能测试 通过go help test可以看到go test的使用说明: 格式形如: go test [-c] [-i] [build flags] [packages] [flags for test binary] 参数解读: -c : 编译go test成为可执行的二进制文件,但是不运行测试。 -i : 安装测试包依赖的package,但是不运行测试。 关于build flags,调用go help bu...阅读全文

开源中国博客 2014-02-24 20:22 chunhei2008

golang get post

import(   4         "fmt"   5         "net/http"   6         "net/url"   7         "io/ioutil"   8 )   9   10 func get(){  11   12         response,_:=http.Get("http://xx.jpg")  13         defer response.Body.Close()  14         body,_:=io...阅读全文

开源中国博客 2014-02-28 17:43 昏鸦

golang 类型断言与反射

session("user")是在另一个页面设置的,存储了一个models.User类型的struct var user models.User u := this.GetSession("user") 获得session  user,这里u是一个interface user = u.(models.User)  类型断言,我断言这个U的类型就是models.User类型的,然后我把他赋值给另一个models.User类型的变量 fmt.Println(user.Id) 这里我...阅读全文

开源中国博客 2014-03-19 17:16 别人说我名字很长

golang struct to buf

struct to buf package main import ( "bytes" "encoding/binary" "reflect" "io" "errors" "fmt" ) func writeBuf(w io.Writer,v reflect.Value) (n int, err error){ newBuf := bytes.NewBuffer(nil) for i := 0; i < v.NumField(); i++ { switch v.Fiel...阅读全文

开源中国博客 2014-04-07 21:05 flyking

golang的单件模式

单件模式 singleton     它是为了提供一个全局实例。比如数据库连接,如果每个用户和线程都独立申请,那么很快就会达到数据库连接的上限。不使用全局变量是因为: 部分语言没有全局变量; 全局变量一样无法阻止类多次实例化。          最终目的是确保只有一个全局实例的办法,比如通过约定俗成的Instance()获得该类实例,Instance()保证不会重复创建。又或者无法调用类的构造函数,而只能调用类的获取实例函数,这样就实现了无法创建新实例的目的。 ---...阅读全文

开源中国博客 2014-05-03 23:38 FaintX

golang interface用法

接口是一个或多个方法签名的集合,任何类型的方法集中只要拥有与之对应的全部方法,就表示它"实现"了该接口无须在该类型上显式添加接口声明。 所谓对应方法,是指有相同名称、参数列表 (不包括参数名) 以及返回值。当然,该类型还可以有其他方法。(1)接口命名习惯以er结尾结构体。(2)接口只有方法签名,没有实现。(3)接口没有数据字段。(4)可在接口中嵌入其他接口。(5)类型可实现多个接口。 下面举个栗子:用例:一个人,他的有两种角色,在公司是程序猿,在家里是孩他爸。在公司当程序猿时就写bug,在家...阅读全文

开源中国博客 2014-05-05 14:37 Estone

golang之web

大多数编程语言之上的 Web 开发框架都是遵照 MVC 的处理流程去开发 Web 应用:Model 部分封装数据,Controller 部分处理业务逻辑,View 部分植入变量填充模板页面。而大部分 Web 框架关于 MVC 的三部分都是在 Server-side 处理,比如对 View 部分的处理都是在 Server-side 通过程序动态对模版变量求值后再拼接组装成 HTML 页面输出给浏览器去呈现。而 Go 开发 Web 应用,并不依赖任何 Web 开发框架,用内置的标准库就可以轻而易举地...阅读全文

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

golang在window平台交叉编译

情景设定:操作系统:window7x64安装目录:c:/go设置环境变量:    PATH=%PATH%;C:/go/bin    GOROOT= C:/go    GOPATH = D:/goproject 进行交叉编译的原理是设置GOARCH(cpu架构)和GOOS(操作系统)然后执行c:/go/src/make.bat --no-clean将c:/go/src的源码编译成各个ARCH下对应OS的包打包好的批处理文件如下: set CGO_ENABLED=0 ::x86 set GOARC...阅读全文

开源中国博客 2014-08-13 09:24 chen yuwen

golang连接activemq

config.ini 配置文件 [stomp] ;activemq的IP地址 host:192.168.7.85  ;activemq的端口 port:61613  ;activemq的队列 queue:/queue/bbg_ordercache  [php] ;php的执行路径 phpbin:php.exe ;被执行的文件的路径  filepath:D:/jianguo/command/application/cli   ;传递给被执行文件的参数 params:show main....阅读全文

开源中国博客 2014-08-13 09:31 chen yuwen

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 昏鸦