摘要: 本文引自mikespook反射的规则在运行时反射是程序检查其所拥有的结构,尤其是类型的一种能力;这是元编程的一种形式。它同时也是造成混淆的重要来源。在这篇文章中将试图明确解释在 Go 中的反射是如何工作的。每个语言的反射模型都不同(同时许多语言根本不支持反射)。不过这篇文章是关于 Go 的,因此接下来的内容“反射”这一词表示“在 Go 中的反射”。类型和接口由于反射构建于类型系统之上,就从复习一下 Go 中的类型开始吧。Go 是静态类型的。每一个变量有一个静态的类型,也就是说,有一个已知类型并且在编译时就确定下来了:int,float32,*MyType,[]byte 等等。如果定义:1 ty 阅读全文
posted @ 2013-10-19 23:25 lniwn 阅读(817) 评论(1) 推荐(1) 编辑
摘要: 在Go中net/rpc标准包提供了编写RPC服务需要的系列函数。net/rpc包允许RPC客户端通过网络或者IO连接调用一个远端对象的public方法。在RPC服务端,可将一个对象注册为可访问的服务,之后该对象的公开方法就能够被远程调用。一个RPC服务端可以注册多个不同类型的对象,但是不允许注册同一类型的多个对象。一个对象中的方法只有满足如下条件,才能被RPC服务端设置为可远程调用:必须是在对象外部可访问的(首字母大写)必须有两个参数,且参数类型都必须是包外部可以访问的类型或者Go内置类型第二个参数必须是一个指针方法必须返回一个error类型的值用代码表示如下:func (t* T) Meth 阅读全文
posted @ 2013-10-19 14:31 lniwn 阅读(1186) 评论(0) 推荐(0) 编辑