随笔分类 - golang
go语言
摘要:包和工具 包为了便于函数复用和封装;实际项目中为了快速开发会引入外部工具包; go编译速度快捷的主要原因: 引入包文件头部显示声明;文件解析只要读头部即可知道依赖关系; 禁止循环依赖;可以独立也可以并发编译; 编译后目标文件记录了包导出信息和依赖关系; 导入路径 import ( "fmt" "ma
阅读全文
摘要:并发 并发机制,多goroutine间的共享变量,并发问题的分析手段,解决模式,goroutine和线程区别 竞争条件 并发:无法判断多个事件执行的顺序的情形; 并发安全:函数,方法,类型在线性执行或并发执行时,都能正确的返回结果; **包级别的导出函数一般都是并发安全的.**因为只要让变量不在多个
阅读全文
摘要:常用接口 sort.Interface sort包是go内置排序函数包.go的排序函数只是接口声明,不对具体类型和元素做假设.它通过sort.Interface接口约定具体排序序列,它需要知道三个参数长度,比较结果,交换方式. type Interface interface { Len() int
阅读全文
摘要:接口 接口类型是对于其他类型行为的抽象;因为接口类型通过只声明不定义具体实现细节,来增加函数的灵活性和扩展性; go中接口类型可以进行隐式实现,即具体实现中不需要定义所有接口声明的函数,只需要按需使用即可.这种定义方式可以让你修改接口时,不用改变已有实现; 接口约定 通过接口约定可以增加函数的灵活性
阅读全文
摘要:方法 go中同时有函数和方法.方法是包含了接收者( receiver)的函数,接收者可以是命名类型或结构体类型的值或指针.所有给定类型的方法属于该类型的方法集.go中的方法是一种有绑定行为的特殊函数,绑定行为用于标识函数所属. 方法声明 方法:在函数名称前增加变量的声明方式.这个附加的参数会将该函数
阅读全文
摘要:函数 函数:将业务拆分为小单元,便于重复调用.隐藏实现细节. 函数声明 函数声明:函数名,形式参数列表,返回值列表(可省略),函数体; func name(parameter-list) (result-list) { body } 形参由调用方提供,返回值省略表示没有返回值.返回值也可以像形参一样
阅读全文
摘要:复合数据结构 复合数据结构:就是组合基本类型而构造出来的复合数据类型. 数组:由同构的元素组成,固定内存大小; 结构体:由异构的元素组成,固定内存大小; slice,map是动态数据结构,根据需要动态增长; 数组 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成.Sli
阅读全文
摘要:数据类型 所有数据在底层上都是由比特组成,但是通过语言封装数据类型,可以兼顾硬件的特性和表达赋值数据的便捷性; go将数据类型分为四类:基础类型,复合类型,引用类型和接口类型. 基础类型:数值,字符串,布尔型; 复合类型:数组,结构体 引用类型:指针,切片,字典,函数,通道 接口类型:接口 基础类型
阅读全文
摘要:go go的编程原则是简洁. 具备功能: 自动垃圾回收 一个包系统 函数是一等公民 语法作用域 系统调用接口 只读的UTF8字符串 类型系统,内置数据类型,聚合类型 标准库 不包含特性: 没有隐式的数值转换 没有构造函数和析构函数 没有运算符重载 没有默认参数 没有继承 没有泛型 没有异常 没有宏
阅读全文