golang反射与反射三法则

反射是在golang程序运行时检查变量所具有类型的一种机制。由于反射可以得出关于变量结构的数据(即“关于数据的数据”),所以这也被认为是golang元编程的基础。初学反射,会感觉有些“玄乎”。我这里由浅入深,尝试阐述反射内涵,并解读反射三法则(http://blog.golang.org/laws-of-reflection)。0 从类型和方法理解反射内涵 在基本的层面上,反射只是一个检查存储在接口变量中的类型和值的算法。使用反射机制,首先需要导入reflect包,reflect包中有两个重要类...阅读全文

2015-10-29 12:52:14 说话的白菜
阅读:2026 评论:0

golang 反射

转自:http://golanghome.com/post/546 自己在用Go写Web框架时,遇到要从接口中返回对象信息的技术问题。网上关于Go中接口反射的资料较少,所以自己学习了一段时间,特将结果与大家分享。 代码约定 import ( "fmt" "reflect" ) type boy struct { Name string age int } type human interface { SayName() SayAge() } func (this *boy) SayName() ...阅读全文

2015-04-03 10:46 rojas
阅读:10245 评论:0

用Go语言做产品半年的一些感觉

用Go语言做产品刚好半年,有一些感觉跟大家说道说道。 在使用Go之前,我常常想象,无法使用先进的Debug工具会对工作进度造成多么巨大的影响。甚至在Visual Studio的娇惯下认为,不能调试基本就无法正确的写出代码了。 由于我在Windows平台,能够支持Go语言调试的gdb老是无法工作,所以在这半年中,我一次都没有打过断点,也没有开启过一次单步跟踪。刚开 始我心里非常没底,只好老老实实为每一个方法写测试代码,每开发完一个功能之后就运行所有测试。这个方法其实也算是家喻户晓的了,但很奇怪,我...阅读全文

2015-06-10 16:18 ShaYeBlog
阅读:5075 评论:0

golang+VScode安装与配置

一、安装golang golang在设置windows环境变量的时候有点问题,喜欢在文件夹后面加\,设置完之后最好自己再改一遍。 编辑环境变量GOROOT,将C:\Go\改成C:\Go 编辑环境变量path,删掉;C:\Go\bin\,然后在最开头写上%GOROOT%\Go; 验证是否安装 C:\>go version go version go1.7 windows/amd64 二、安装VScode vs的扩展插件在C:\Users\[用户名]\.vscode\extensions目录下,想离...阅读全文

阅读:13452 评论:0

聊一聊goroutine stack

推送在外卖订餐中扮演着重要的角色,为商家实时接单、骑手实时派单提供基础的数据通道。早期推送是由第三方服务商提供的, 随着业务复杂度的提升、订单量和用户数的持续增长,之前的系统已经远远不能满足需求,构建一个高性能、高可用的推送系统势在必行。 今年上半年我们用go开发了一个hybrid push服务,用户在线则借助长连接下发消息,不在线则借助厂商或第三方通道下发消息。 在构建过程中遇到了些与 goroutine stack 相关的问题,这里就和大家扯一扯。 带着问题阅读,才能让阅读更加高效,首先让我...阅读全文

2017-07-29 00:00 coding & life
阅读:4951 评论:6

linux 源码安装 golang

下载地址:https://golang.org/dl/ 下载压缩包 $ wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz 解压该文件,默认的go路径在/usr/local下, 在/usr/local/go中创建一个Go结构。 格式: tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz $ sudo tar -C /usr/local -xzf go1.8.3...阅读全文

2017.08.12 10:14 战神悟空
阅读:1163 评论:0