网站首页 返回列表 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。
go语言HTTP GET解析URL中的查询参数
go语言HTTPGET解析URL中的查询参数经常我们会使用下面的逻辑来处理查询参数:__funcmyHandler(whttp.ResponseWriter,r*http.Request){vars:=r.URL.Query();a:=vars["a"][0]...}描述起来很简单,先获取Query对象,然后从Quer...
阅读全文
go语言指针类型的使用
>go语言的指针类型简单地说go语言的指针类型和C/C++的指针类型用法是一样的,除了出去安全性的考虑,go语言增加了一些限制,包括如下几条:1.不同类型的指针不能互相转化,例如*int,_int32,以及_int642.任何普通指针类型*T和uintptr之间不能互相转化3.指针变量不能进行运算,比如C/C++里面的...
阅读全文
go语言传递struct, pointer和interface的差异
go语言函数传参可以传递struct,传递pointer,还有传递interface,他们主要区别是什么呢?__packagemainimport("fmt""unsafe""reflect")typeMyInterfaceinterface{}typeMyStructstruct{i1int64i2int64i3in...
阅读全文
go语言函数如何传递数组变量
这篇文章以实践的方式验证go语言函数之间是如何传递数组类型变量的。和slice相比,go对于array传参是传递整个array内容的,而不是引用,即把原array内容做一个拷贝,然后把拷贝后的内容值作为参数给被调用者使用。以如下go语言程序为例子:__packagemainconstSIZE=16funcmain(){...
阅读全文
go语言函数如何传递interface
如何传递interface__packagemainimport("fmt")typeMyInterfaceinterface{foo()}typeMyStructstruct{i1int64}func(mMyStruct)foo(){fmt.Println("i1:",m.i1)}funcHello1(pinterf...
阅读全文
再议go语言的value receiver和pointer receiver
再议struct的valuemethod和pointermethod以一个例子开头__packagemainimport("fmt"_"unsafe"_"reflect")typeMyInterfaceinterface{foo()}typeMyStructstruct{iiint64}func(m*MyStruct)...
阅读全文
go语言如何调用c函数
>1.直接嵌入c源代码到go代码里面>__packagemain/*#includevoidmyhello(inti){printf("HelloC:%d\n",i);}*/import"C"import"fmt"funcmain(){C.myhello(C.int(12))fmt.Println("HelloGo")...
阅读全文
go语言的++/--操作
go语言的++/--操作>C/C++程序员的窘境C/C++程序员在面试的时候经常会被面试官问到++/--的问题而搞晕,其实面试官自己在出题的时候也未必能弄明白,只不过恰好在面试你之前在电脑上验证了一把,所以显得他知道的很多,不要问我怎么知道的:-)>go语言的++/--go语言对++/--的使用做了优化(限制),个人感...
阅读全文
go语言使用github.com/gorilla/mux发布REST service
一个使用github.com/gorilla/mux实现RESTAPIService的例子,主要内容包括:1.GET/POST方法,如何接收path参数,query参数,以及POSTbody参数2.如何设置返回状态码,如何返回JSON数据body3.验证Handler函数是同步的还是异步的,单线程的还是多线程的>GET...
阅读全文
go语言局部变量分配在栈还是堆
一个问题引发的思考?如下go语言代码__packagemainfuncfoo(m0int)(*int){varm1int=11;return&m1}funcmain(){m:=foo(100)println(*m)}编译运行:__$gobuildmain.go&&./main11竟然没有出现任何编译错误。熟悉C/C++...
阅读全文
go语言里面receiver应该定义成一个值还是指针
go语言里面receiver应该定义成一个值还是指针,比如__func(s*MyStruct)pointerMethod(){}//methodonpointerfunc(sMyStruct)valueMethod(){}//methodonvalue哪种定义方式是满足需求的。先举一个代码例子__packagemain...
阅读全文
go语言 string数据类型格式
在go语言里面定义字符串如下:`varssstring="12345"`对于一个熟悉C/C++的程序员来说,马上就会想到这个string是一个什么内容,占多大空间,内存如何分配等,下面我们来分析这个问题。go语言的string是一种数据类型,这个数据类型占用16字节空间,前8字节是一个指针,指向字符串值的地址,后八个字...
阅读全文
go语言slice数据类型的定义和使用
这篇文章介绍go语言slice数据类型的定义,内部格式,以及如何声明和定义slice类型变量。>slice数据类型大小__packagemainimport("fmt""unsafe")funcmain(){vars1[]int64vars2[]int64=make([]int64,0)vars3[]int64=mak...
阅读全文
go语言函数传递slice类型变量
这篇文章介绍slice类型数据是如何在函数之间传递的。__packagemainimport("fmt""unsafe")typemyslicestruct{v1uintptrv2uint64v3uint64}varp*myslicefuncmain(){s1:=make([]int64,2,4)s1[0]=0x11s...
阅读全文
Go语言开发中PostgreSQL的应用
PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。用于安全地存储数据;支持最佳做法,并允许在处理请求时检索它们。PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。它不受任何公司或其他私人实体控制。它是开源的,其源代码是免费提...
阅读全文