网站首页 成长录 “慢生活”不是懒惰,放慢速度不是拖延时间,而是让我们在生活中寻找到平衡。

go语言传递struct, pointer和interface的差异
2020-06-09 18:57 admin gostruct

go语言函数传参可以传递struct,传递pointer,还有传递interface,他们主要区别是什么呢?__packagemainimport("fmt""unsafe""reflect")typeMyInterfaceinterface{}typeMyStructstruct{i1int64i2int64i3in...
阅读全文

go语言函数如何传递数组变量
2020-06-09 18:57 admin go数组

这篇文章以实践的方式验证go语言函数之间是如何传递数组类型变量的。和slice相比,go对于array传参是传递整个array内容的,而不是引用,即把原array内容做一个拷贝,然后把拷贝后的内容值作为参数给被调用者使用。以如下go语言程序为例子:__packagemainconstSIZE=16funcmain(){...
阅读全文

go语言函数如何传递interface
2020-06-09 18:57 admin interfacego

如何传递interface__packagemainimport("fmt")typeMyInterfaceinterface{foo()}typeMyStructstruct{i1int64}func(mMyStruct)foo(){fmt.Println("i1:",m.i1)}funcHello1(pinterf...
阅读全文

再议go语言的value receiver和pointer receiver
2020-06-09 18:57 admin goreceiver

再议struct的valuemethod和pointermethod以一个例子开头__packagemainimport("fmt"_"unsafe"_"reflect")typeMyInterfaceinterface{foo()}typeMyStructstruct{iiint64}func(m*MyStruct)...
阅读全文

go语言如何调用c函数
2020-06-09 18:57 admin go调用

>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语言的++/--操作
2020-06-09 18:57 admin go语言

go语言的++/--操作>C/C++程序员的窘境C/C++程序员在面试的时候经常会被面试官问到++/--的问题而搞晕,其实面试官自己在出题的时候也未必能弄明白,只不过恰好在面试你之前在电脑上验证了一把,所以显得他知道的很多,不要问我怎么知道的:-)>go语言的++/--go语言对++/--的使用做了优化(限制),个人感...
阅读全文

go语言使用github.com/gorilla/mux发布REST service
2020-06-09 18:57 admin gogithubcom

一个使用github.com/gorilla/mux实现RESTAPIService的例子,主要内容包括:1.GET/POST方法,如何接收path参数,query参数,以及POSTbody参数2.如何设置返回状态码,如何返回JSON数据body3.验证Handler函数是同步的还是异步的,单线程的还是多线程的>GET...
阅读全文

go语言局部变量分配在栈还是堆
2020-06-09 18:57 admin go局部变量

一个问题引发的思考?如下go语言代码__packagemainfuncfoo(m0int)(*int){varm1int=11;return&m1}funcmain(){m:=foo(100)println(*m)}编译运行:__$gobuildmain.go&&./main11竟然没有出现任何编译错误。熟悉C/C++...
阅读全文

goroutine访问宿主函数局部变量
2020-06-09 18:57 admin goroutine局部变量

我们知道goroutine函数会在一个不同于当前调用者线程的环境中运行;那么当调用者线程结束,或者调用者函数返回之后,goroutine函数还能不能使用调用者函数的局部变量呢。下面代码例子描述这个问题__packagemainimport("log""time")funcfoo(){deferlog.Println("...
阅读全文

golang实现微信聊天机器人
2020-06-09 18:57 admin golang微信

主要模块*获取UUID*根据UUID获取二维码*显示二维码*扫码登陆*初始化微信信息*打开状态同步通知*获取通讯录*发送信息*同步信息*获取自动回复内容源码地址网页版微信API获取UUID*接口地址`https://login.weixin.qq.com/jslogin?appid=wx782c26e4c19acffb...
阅读全文

go语言里面receiver应该定义成一个值还是指针
2020-06-09 18:57 admin goreceiver

go语言里面receiver应该定义成一个值还是指针,比如__func(s*MyStruct)pointerMethod(){}//methodonpointerfunc(sMyStruct)valueMethod(){}//methodonvalue哪种定义方式是满足需求的。先举一个代码例子__packagemain...
阅读全文

go语言 string数据类型格式
2020-06-09 18:57 admin go数据类型

在go语言里面定义字符串如下:`varssstring="12345"`对于一个熟悉C/C++的程序员来说,马上就会想到这个string是一个什么内容,占多大空间,内存如何分配等,下面我们来分析这个问题。go语言的string是一种数据类型,这个数据类型占用16字节空间,前8字节是一个指针,指向字符串值的地址,后八个字...
阅读全文

go语言slice数据类型的定义和使用
2020-06-09 18:57 admin go数据类型

这篇文章介绍go语言slice数据类型的定义,内部格式,以及如何声明和定义slice类型变量。>slice数据类型大小__packagemainimport("fmt""unsafe")funcmain(){vars1[]int64vars2[]int64=make([]int64,0)vars3[]int64=mak...
阅读全文

go语言函数传递slice类型变量
2020-06-09 18:57 admin goslice

这篇文章介绍slice类型数据是如何在函数之间传递的。__packagemainimport("fmt""unsafe")typemyslicestruct{v1uintptrv2uint64v3uint64}varp*myslicefuncmain(){s1:=make([]int64,2,4)s1[0]=0x11s...
阅读全文

直播SaaS这两年
2020-06-09 18:57 admin SaaS直播

2016年史称直播元年,一年当中数以百计的直播应用如雨后春笋般出现在市场上,AppStore、Android市场上充斥着秀场直播、事件直播、移动直播、直播交友等形形色色的应用,占据着越来越多用户的闲暇时光。在万众创业的大背景下,创业者们纷纷扑向这个号称数百亿的新兴市场,在这场运动中,风投、基金也携着大把的钞票为大家提供...
阅读全文
顶部 底部