一文带你掌握Golang基础之通道
目录前言通道如何创建通道向通道发送数据从通道接收数据通道的例子前言在Java中,多线程之间的通信方式有哪些?记得吗?Java多线程间通信的解决方案有很多种,比如:synchronized。使...
目录前言通道如何创建通道向通道发送数据从通道接收数据通道的例子前言在Java中,多线程之间的通信方式有哪些?记得吗?Java多线程间通信的解决方案有很多种,比如:synchronized。使...
目录Golang中的关键字(defer、:=、go func())一、defer二、var与 := 的区别1. var 声明变量,如下:2. :=3. 二者区别三、go func补充:golang的关键字Golang中的关键字(defer、:=...
Go语言里面定义变量有多种方式。使用var关键字是Go最基本的定义变量方式,有时也会使用到:=来定义变量。定义变量// 定义一个名称为“variableName”,类型为"type"的变量// var...
目录概述gob库的使用示例1. 序列化和反序列化基本数据类型2. 序列化和反序列化结构体3. 注册数据类型概述Gob 是Go语言自己以二进制形式序列化和反序列化程序数据的格式,可以...
目录现象无限循环相同地址原因循环语句是一种常用的控制结构,在 Go 语言中,除了 for 关键字以外,还有一个 range 关键字,可以使用 for-range 循环迭代数组、切片、字符串、map...
目录1. 条件语句1.1 if 语句1.2 switch 语句2. 循环语句2.1 for 语句2.2 range 语句3. 跳转语句3.1 break 语句3.2 continue 语句3.3 goto 语句4. 错误处理语句4.1 defer 语...
目录1. sync.Once 的原理和实现2. sync.Once 的错误处理3. sync.Once 的嵌套调用4. 并发性能5. 总结Go 语言的 sync 包提供了一系列同步原语,其中 sync.Once 就是其中之一。s...
目录1. defer的简单介绍与使用场景2. defer在return执行的时机3. 小结1. defer的简单介绍与使用场景defer是Go里面的一个关键字,用在方法或函数前面,作为方法或函数的延迟调用...
目录1. 错误的基本概念2. 错误类型3. 自定义错误类型4. 错误处理5. errors.Is 和 errors.As6. panic 和 recover6.1 panic 函数6.2 recover 函数7. 总结Go 语言是一门非常流...
目录一、for循环二、range语句三、实战一、for循环循环:让程序多次执行相同的代码块for循环是Go语言中唯一一个循环结构for循环经典语法先执行表达式1执行表达式2判断是否成...
目录1. 为什么需要协程池2. 使用协程池的优点3. 设计思路4. 实现一个简单的协程池4.1 Task 任务对象4.2 Pool协程池4.3 Main函数1. 为什么需要协程池使用协程池的好处是减少...
目录1. 数组的定义和特性1.1 数组的定义1.2 数组的特性2. 切片的定义和特性2.1 切片的定义2.2 切片的特性3. 数组和切片的内存布局3.1 数组的内存布局3.2 切片的内存布局4....
目录http.ListenAndServeserverHandler流程梳理自己动手写一个serverHandlercore.gomain.gohttp.ListenAndServetype Server struct { // 请求监听地址 Addr string /...
目录0. 简介1. channel数据结构2. channel创建3. 数据发送3.1 空通道的数据发送3.2 直接发送3.3 缓存区3.4 阻塞发送4. 接收数据4.1 空通道的数据接收4.2 直接接收4.3 从缓...
目录前言goroutine(Go 协程)channel(通道)channel 的初始化channel的关闭waitGroup 的使用爬虫爬虫配置爬虫数据开启并行爬取某个链接爬取某个链接的电影数据main 函数开启...
目录反射简介反射详解Type 类型Value 类型使用反射的例子元编程的基本概念和实践方法代码生成反射接口和类型断言反射简介Go语言的反射是通过reflect包提供的,它允许我们在运...
目录前情提要Context封装自定义的Contextcontext.gomain.goCore.gorouter.gomain.go前情提要因为上一篇提过,每次来一个请求,然后就会起一个goroutinue那么导致的可能就是一个...
目录1. 需求2. 代码实现1. manager.go2. skill1_manager.go3. skill2_manager.go4. skill3_manager.go5. mian.go总结1. 需求实现一个工具能准确判断英雄能秒人的技能伤害!方...
目录前言随机数生成器使用goroutines并发地对各个子数组进行排序合并已排序的子数组得到最终排序结果main 函数控制流程思路性能比较前言本案例实现一个多线程排序算法,能够...
目录1. 介绍2. 方法示例2.1 通过反射获取对象的键(类型)和值2.2 反射对象的类型和属性3. 反射对Json的操作3.1 反射与Json属性解析3.2 Json包的序列化与反序列化4. 实战巩固...
目录控制子协程退出超时控制上下文传递数据控制子协程退出context包提供了一种机制,可以在多个goroutine之间进行通信和控制。使用Context包能够有效地控制程序的并发性,提高...
关于什么是设计模式,笔者在这里就不做过多的解释。大家自行百度谷歌就好。下面我们聊聊Option设计模式,这个单词翻译过来就是选项的意思。它一般都是用在初始化数据的时候使用...
目录1. 简介2. 为什么需要超时控制3. 超时控制的方法 3.1 time包实现超时控制 3.2 context实现超时控制4. 适用场景分析4.1 简单超时控制4.2 可选超时控制5.总结1. 简介...
目录1. 理解并发与并行2. sync.WaitGroup 的作用和用法2.1 sync.WaitGroup 结构体的定义2.2 sync.WaitGroup 的方法2.3 使用示例3. sync.WaitGroup 的工作原理3.1 原子操作3...
目录Go包的概念Go依赖管理的概念Go mod的使用Go mod的优势Go mod常见问题解决总结Go语言作为一门开源的编程语言,已经广泛应用于各个领域。作为一门现代化的编程语言,Go语言支...