#Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始。 数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速。 数组声明和初始化 ......
150
0
0
2023-08-09
目录一个数据竞态的case检查数据竞态解决方案1、WaitGroup等待2、Channel阻塞等待3、Channel通道4、互斥锁典型数据竞态1、循环计数上的竞态2、意外共享变量3、无保护的全局变量4、原始无保护变量5、未同步的发送和关闭操作本文以一个简单事例的多种解决方案作为引子,用结构体Demo来总结各种并发读写的情况一个数据竞态的casepackage ......
146
0
0
2023-08-04
目录sync.Cond 是什么适用场景sync.Cond 的基本用法NewCond 创建实例Wait 等待条件满足Signal 通知一个等待的 goroutineBroadcast 通知所有等待的 goroutinesync.Cond 使用实例为什么要用 sync.Condclose channel 广播实例sync.Cond 基本原理sync.Cond 的 ......
148
0
0
2023-07-29
目录一、函数1. 函数的基本形式2. 递归函数3. 匿名函数4. 闭包5. 延迟调用defer6. 异常处理二、面向接口编程1. 接口的基本概念2. 接口的使用3. 接口的赋值4. 接口嵌入5. 空接口6. 类型断言7. 面向接口编程一、函数1. 函数的基本形式// 函数定义:a,b是形参 func add(a int, b int) { a = a ......
161
0
0
2023-07-26
目录Golang精编100题能力模型(测试)选择题1.   【初级】下面属于关键字的是()2.   【初级】定义一个包内全局字符串变量,下面语法正确的是()3.   【初级】通过指针变量 p 访问其成员变量 name,下面语法正确的是()4.  &n ......
236
0
0
2023-07-24
目录简介类型时区小心有坑时间解析的使用场景时间操作获取当前时间时区设置时间格式化(时间类型转字符串)时间类型转时间戳时间戳转时间类型时间字符串转时间类型时间计算获取时间类型具体内容时间加减时间间隔(耗时)时间取整(向上取整向下取整)拓展json时间转换简介在各个语言之中都有时间类型的处理,因为这个地球是圆的(我仿佛在讲废话),有多个时区,每个时区的时间不一样 ......
222
0
0
2023-07-19
目录1、字符串截取2、切片截取引起子切片内存泄漏3、没有重置丢失的子切片元素中的指针4、函数数组传参5、goroutine6、定时器1)time.After2)timer、ticker总结1、字符串截取func main() { var str = "12345678901234567890" str := str0[:10] } 以上代码,会有 ......
178
0
0
2023-07-18
目录1.使用值为 nil 的 slice、map会发生啥2.访问 map 中的 key,需要注意啥3.string 类型的值可以修改吗4.switch 中如何强制执行下一个 case 代码块5.你是如何关闭 HTTP 的响应体的6.你是否主动关闭过http连接,为啥要这样做7.解析 JSON 数据时,默认将数值当做哪种类型8.如何从 panic 中恢复9.简 ......
180
0
0
2023-07-18
目录示例initListenerserveactivateEventLoopspolling前面说了go自带的原生netpoll模型,大致的流程就是每一个新的连接都会开启一个goroutine去处理,这样的处理的过程简单,高效,充分利用了go的底层的能力。但是这里有几个问题,对于accept的时候,是否可以多个线程去accept,这样的话就不用每次有一个连接 ......
154
0
0
2023-07-16
目录反射概述反射基础 - go 的 interface 是怎么存储的反射对象 - reflect.Type 和 reflect.Value反射定律Elem 方法reflect.Value 的 Elem 方法reflect.Type 的 Elem 方法Interface 方法Kindaddressable获取类型信息 - reflect.Type概述通用的 T ......
167
0
0
2023-07-16
目录概述基本使用Java 中的 interface(接口)go 中的 interface(接口)go interface 的优势空接口如何使用 interface{} 类型的参数?类型断言另外一种类型断言方式switch...case 中判断接口类型编译器自动检测类型是否实现接口一种简单的解决方法类型转换与接口断言一个类型可以实现多个接口接口与 nil 不相 ......
144
0
0
2023-07-15
目录1.gorm介绍1.1介绍1.2安装2.使用2.1创建表2.2.添加数据2.3.查询数据2.4更新数据2.5删除数据2.6执行原生sql3.一对一3.1创建表3.2多态关联3.3外键约束4.一对多5.多对多6.获取多表数据1.gorm介绍1.1介绍全功能 ORM 关联 (Has One,Has Many,Belongs To,Many To Many, ......
160
0
0
2023-07-12
目录前言你可以收获正文内容脉络基础知识实现思路目标规划步步为营1、数据流2、数据结构3、初始化优先级队列对象4、生产者推送任务5、将推送任务加到优先级队列中6、消费者消费队列7、完整代码发散思维小结前言在数据结构中,队列遵循着FIFO(先进先出)的规则。在此基础上,人们引申出了“优先级队列”的概念。优先级队列,是带有优先级属性的队列,所有的队列元素按照优先级 ......
160
0
0
2023-07-11
目录反射反射类型Type指针结构体反射值Value结构体空与有效性判断修改值函数调用反射三定律interface底层结构ifaceeface反射Go语言提供了reflect 包来访问程序的反射信息;定义了两个重要的类型Type和Value:reflect.TypeOf:获取任意值的类型对象(reflect.Type);reflect.ValueOf:获得值的 ......
174
0
0
2023-07-09
目录跳跃表介绍跳跃表的实现跳跃表的结构创建跳跃表跳跃表的插入和删除跳跃表的排名操作跳跃表的区间操作完整实现跳跃表介绍跳跃表(skiplist)是一种有序的数据结构,它通过建立多层"索引",从而达到快速访问节点的目的. 跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找,还可以通过顺序性操作来批量处理节点。下面是一个跳表结构的示意图,其实跳表就是一个二 ......
154
0
0
2023-07-07