/go_advanced_code

How to be a nice advanced Gopher ?Follow these

Primary LanguageGoMIT LicenseMIT

高级Goland学习代码 go_advanced_code

Go Report Card GitHub stars GitHub forks Documentation GitHub issues license

高级go编程

目录

goVersion==1.16

  • 1 os操作系统模块
    • 1.1 os中FileInfo底层的文件描述符和相关信息
    • 1.2 os文件操作
    • 1.3 io包底层Reader和Writer接口
      • 1.3.1 os,bytes,strings包
    • 1.4 io断点续传
    • 1.5 FilePath包
      • 1.5.1 walkPath遍历目录及文件
      • 1.5.2 匹配文件名
  • 2 bufio缓存读写

第二章 协程Goroutine


第三章 通道Channel



第五章 切片和数组

  • 1 值传递-数组
  • 2 引用传递-指针切片和指针数组
  • 3 切片和数组参数传递性能对比
  • 4 切片底层结构
  • 5 nil切片和空切片
  • 6 扩容策略
  • 7 不同类型的切片间互转
  • 8 带索引初始化数组和切片

第六章 指针


  1. 获取当前进程 PID
  • 1 注册延迟调用机制定义及使用
  • 2 defer陷阱
  • 3 分解defer函数
  • 4 defer循环性能问题
  • 5 汇编理解defer函数

OOP七大准则

  • 1 闭包
    • 1.1 闭包理论
    • 1.2 匿名函数
      • 1.2.1 匿名函数
      • 1.2.2 函数模版:定义行为
  • 2 高级函数
    • 2.1 简单实现filter,map,reduce
    • 2.2 简单案例
    • 2.3 复杂实现:泛型及类型检查
  • 3 一等公民
    • 网络管理中问题需求
    • 网络管理中三种处理对比
      • 3.1 通过同享内存通信
      • 3.2 通过通信(具体数据)共享内存
      • 3.3 通过通信(函数)共享内存

第十一章 汇编理解go语言底层源码

  • 1 汇编基本指令

  • 2 plan9汇编

    • 2.1 常量constant
    • 2.2 array类型
    • 2.3 bool类型
    • 2.4 int类型
    • 2.5 float类型
    • 2.6 slice类型
    • 2.7 引用类型map和channel
    • 2.8 函数类型
    • 2.9 局部变量
    • 2.10 流程控制
    • 2.11 伪SP,FP及硬件SP关系
    • 2.12 结构体方法
    • 2.13 递归函数
    • 2.14 闭包函数
  • 3 Golang底层数据结构

第十二章 网络编程net

cgo在confluent-kafka-go源码使用

  • 1 Go调用自定义C函数
  • 2 Go调用模块化C库
  • 3 Go实现C定义函数
  • 4 Go获取C函数的errno
  • 5 C的void返回
  • 0 父类EmptyCtx
  • 1 Context来源
    • 1.1 问题:如何释放资源
    • 1.2 方式一:全局参数
    • 1.3 方式二: 通道channel
    • 1.4 方式三: Context
  • 2 WithCancel源码及使用
  • 3 WithDeadline源码及使用
  • 4 WithValue源码及使用
  • 5 WithTimeout源码及使用

第十五章 接口编程

  • 1 冗余代码写法
  • 2 简单优化
  • 3 更优方式

第十六章 并发编程

  • 1 简单流水线模型
  • 2 FAN-IN和FAN-OUT模型

第十七章 数据结构及算法

第十八章 错误跟踪和panic

第十九章 nil预定义标识

  • 1 不同类型为nil时的地址和大小
  • 2 不同类型与nil的比较
  • 3 不同类型nil时的特点
  • 1 遍历数组和切片
  • 2 遍历Goroutine(协程启动时间)
  • 3 遍历Map