摘要:
反射的类型对象(reflect.Type) 反射 是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可 阅读全文
摘要:
示例:工厂模式自动注册——管理多个包的结构体 本例利用包的 init 特性,将 cls1 和 cls2 两个包注册到工厂,使用字符串创建这两个注册好的结构实例。 代码1-1 类工厂(具体文件:../clsfactory/base/factory.go) package base //类接口 type 阅读全文
摘要:
导入包(import)——在代码中使用其他的代码 要引用的其他包的标识符,可以使用 import 关键字,导入的包名使用双引号包围,包名是从 GOPATH 开始计算的路径,使用 "/" 进行路径分隔。 1、默认导入的方法 导入有两种基本格式,即单行导入和多行导入,两种导入方法的导入代码效果是一致的。 阅读全文
摘要:
导出标识符——让外部访问包的类型和值 在 Go 语言中,如果想在一个包里引用另外一个包里的标识符(如 类型、变量、常量等)时,必须首先将被引用的标识符导出,将要导出的标识符的首字母大写就可以让引用者可以访问这些标识符了。 1、导出包内标识符 标识符首字母为小写,这些标识符可以在包内自由使用,但是包外 阅读全文
摘要:
创建包 package——编写自己的代码扩展 包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,Go 语言默认为我们提供了很多包,如 fmt、os、io 包等,开发者可以根据自己的需要创建自己的包。 包要求在同一个目录下的所有文件的第一行添加如下代码,以标记该文件归属的包: p 阅读全文
摘要:
工作目录(GOPATH) Go 语言的源码复用建立在包(package)基础之上。Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,必须同样以包的方式进行引用。 Go 语言的包与文件夹一一对应,所有与包相关的操作,必须依赖于工作目录(GOPAT 阅读全文