摘要:Go 语言类型元信息的通用结构 _type _type 数据结构 Go 语言是一种强类型的语言,编译器在编译时会做严格的类型校验 所以 Go 语言必然为每种类型维护一个类型的元信息 这个元信息在运行和反射时都会用到 其他类型都是以 _type 为内嵌字段封装而成的结构体 _type 包含所有类型的共
阅读全文
摘要:空接口 基本概念 没有任何方法的接口称为空接口,空接口表示为 interface{}、系统中热河类型都符合空接口的要求 空接口的用途 空接口和泛型 Go 语言没有泛型,如果一个函数需要接受任意类型的参数,则参数类型可以使用空接口类型,这是弥补没有泛型的一种手段 空接口和发射 空接口是发射的基础,反射
阅读全文
摘要:接口 接口声明 接口初始化 单纯的声明一个接口变量没有任何意义,接口只有被初始化为具体的类型时才有意义, 接口作为一个抽象层,起到抽象和适配的作用。没有初始化的接口变量,其默认值时 nil。 接口绑定具体类型的实例的过程称为接口初始化。接口变量支持两种直接初始化的方法 实例赋值接口 如果具体类型的实
阅读全文
摘要:go 语言标识符 摘自 go 语言并发实战书籍 标识符可以表示程序的实体,前者即为后者的名称 Go 中的变量、常量、函数和类型声明可统称为程序实体,而他们的名称统称为标识符,标识符可以是 Unicode、 字符集中任意能表示自然语言文字的字符、数字以及下划线(_),标识符不能以数字或下划线开头 实际
阅读全文
摘要:代码包 在 Go 中,代码包是代码编译和安装的基本单位,也是非常直观的代码组织形式。 1、包声明 2、包导入 Go 语言中的变量、常量、函数和类型声明可统称为程序实体,而他们的名称统称为表示符 标识符的大小写控制对应程序的访问权限 3、包初始化 有专门的函数负责代码包初始化,这个函数就是无任何参数和
阅读全文
摘要:笔记 知识点: 1、go语言的类型别名和类型声明 2、结构体赋值 1、使用键值对初始化结构体 2、使用多个值的列表初始化结构体 Go 语言可以在“键值对”初始化的基础上忽略“键”, 也就是说,可以使用多个值的列表初始化结构体的字段 书写格式: 使用这种格式初始化时,必须初始化所有字段,每个字段初始化
阅读全文
摘要:前言 golang 不允许循环 import package, 如果检测 import cycle, 会在编译时报错,通常 import cycle 是因为错误或包的规划问题 以下面的例子为例,package a 依赖 package b,同时package b 依赖 package a packa
阅读全文