go

【Golang详解】go语言中的defer

defer 用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行 延迟函数的参数在defer语句出现时就已经确定下来了 如: func a() { i := 0 defer fmt.Println(i) i++ return } defer语句中的fmt.P
go

【golang必备算法】单调队列 Letecode 239. 滑动窗口最大值

单调队列 今天刷力扣,碰到一道关于单调队列的题,总结一下 239. 滑动窗口最大值 单调队列思想: 队列没有必要维护窗口里的所有元素,只需要维护有可能成为窗口里最大值的元素就可以了,同时保证队列里的元素数值是由大到小的。 单调队列不是单纯的给队列中元素排序,那和优先级队列没有什么区别了。 设计时要
go

【golang必备算法】堆

堆: 一般我们提到的是二叉堆,是一种完全二叉树,二叉堆有两种:最大堆和最小堆。特点是父节点的值大于(小于)子节点 基础知识 完全二叉树有一个性质,除了最底层,每一层都是满的,这使得堆可以利用数组来表示,如下图 对给定某个结点下标i,可以计算出这个结点的父节点、孩子节点的下标: 父节点下标:i
go

Go语言核心36讲(Go语言实战与应用十)--学习笔记

32 | context.Context类型 我们在上篇文章中讲到了sync.WaitGroup类型:一个可以帮我们实现一对多 goroutine 协作流程的同步工具。 在使用WaitGroup值的时候,我们最好用“先统一Add,再并发Done,最后Wait”的标准模式来构建协作流程。 如果在调用该
go

Go语言核心36讲(Go语言实战与应用十一)--学习笔记

33 | 临时对象池sync.Pool 到目前为止,我们已经一起学习了 Go 语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁、读写锁、条件变量和原子操作,以及 Go 语言特有的几个同步工具: 1、sync/atomic.Value 2、sync.Once 3、sync.WaitGroup
go

BongoCat_Mac(二)_自制贴图和自定义动画

前情提要 BongoCat_Mac(一)_Electron如何监听鼠标键盘事件——ioHook 运行环境 macOS High Sierra系统 10.13.6 node v14.2.0 electron v8.0.0 项目 http://gitee.com/xuanyusan/bongocat_f
go

Go语言之循环与条件判断

一、for循环 Go 语言中没有 while 循环,只有一个 for 循环 for 变量初始化;条件;变量自增/自减 { 循环体内容 } 1、基本使用 for i := 0; i < 10; i++ { fmt.Println(i) } 2、省略第一部分 i := 0 for ; i <
go

Go语言之结构体与方法

一、结构体 结构体是一系列属性的集合(类似于 Python 中的类) 1、结构体的定义与使用 // 定义 type Person struct { Name string Age int Sex string } func main() { // 使用 var per Person per.Name
go

Go语言之接口

接口就是一系列方法的集合(规范行为) 在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为,规范子类对象的行为。 在 Go 语言中的接口是非侵入式接口(接口没了,不影响代码),侵入式接口(接口没了,子类报错) Go 也是鸭子类型,比如我现在有个鸭子类,内有 speak 方法和 run 方法,
go

picGo+gitee搭建Obsidian图床,实现高效写作

1 picGo安装 [picgo下载链接](https://molunerfinn.com/PicGo/) 选择安装目录,可以选择安装在D:\Program Files 然后点击安装即可 2. gitee设置 安装好picgo后在picgo的插件设置搜索 gitee然后选择安装gitee-
加载更多