随笔分类 - golang
摘要:go安装 下载 https://golang.google.cn/dl/ 解压至指定目录,一般到/usr/local sudo tar -C /usr/local -xzf go**.linux-amd64.tar.gz 设置环境变量 # 修改~/.bashrc 文件 $ sudo gedit ~/
阅读全文
摘要:channel的基本操作和注意事项 channel存在3种状态: nil,未初始化的状态,只进行了声明,或者手动赋值为nil active,正常的channel,可读或者可写 closed,已关闭,关闭的channel并不是nil状态的channel channel可进行的操作 读 写 关闭 3种状
阅读全文
摘要:前言: defer是Go语言中的一个关键字(延迟调用),一般用于释放资源和连接、关闭文件、释放锁等。和defer类似的有java的finally和C++的析构函数,这些语句一般是一定会执行的(某些特殊情况后文会提到),不过析构函数析构的是对象,而defer后面一般跟函数或方法。 1、 多个defer
阅读全文
摘要:27.Go中的map如何实现顺序读取? Go中map如果要实现顺序读取的话,可以先把map中的key,通过sort包排序. 通过sort中的排序包进行对map中的key进行排序. 28.Go中CAS是怎么回事? CAS算法(Compare And Swap),是原子操作的一种, CAS算法是一种有名
阅读全文
摘要:https://www.golangroadmap.com/interview/books/questions/golang/ 1.Golang中除了加Mutex锁以外还有哪些方式安全读写共享变量 ? Golang中Goroutine 可以通过 Channel 进行安全读写共享变量,还可以通过原子性
阅读全文
摘要:总体实现:利用 cgo 基于pdfium(C库)实现pdf单页转图片,多页转图片后可拼接为长图 前期准备 linux上安装C库 1 创建文件目录结构 /opt/pdfium 下载pdfium-linux-x64,解压放入此目录下 (https://github.com/wanggang826/go-
阅读全文
摘要:1、Make 和 new 区别 make和new都是内存的分配(堆上),但是make只用于slice、map以及channel的初始化(非零值);而new用于类型的内存分配,并且内存置为零。make返回的是引用类型本身;而new返回的是指向类型的指针。 2、切片和数组关系 引用类型和值类型 共享 扩
阅读全文
摘要:1、熟悉Golang编程语言,依赖管理go mod、并发编程goroutine、channel、GMP协程调度模型 context与waitgroup,互斥及读写锁等 oom--new make 都是用来分配内存地址的new,它返回的永远是类型的指针,指向分配类型的内存地址,new用于类型的内存分配
阅读全文
摘要:在 Golang 里, _ (下划线)是个特殊的标识符。 用在 import 在导包的时候,常见这个用法,尤其是项目中使用到 mysql 或者使用 pprof 做性能分析时,比如 import _ "net/http/pprof" import _ "github.com/go-sql-driver
阅读全文