
Golang
文章平均质量分 82
whhom
github链接https://github.com/whhcs
展开
-
Go语言中的WaitGroup
Go语言中的WaitGroupGo语言sync包中的WaitGroup可以有效解决goroutine未执行完成,而主程序执行完成导致程序结束的问题。 Go语言标准库中WaitGroup只有三个方法:Add(delta int)表示向内部计数器添加增量(delta),其中参数delta可以是负数Done()表示减少WaitGroup计数器的值,应当在程序最后执行.相当于Add(-1)Wait()表示阻塞直到WaitGroup计数器为0代码示例:package mainimpo原创 2022-02-06 20:48:51 · 555 阅读 · 0 评论 -
Go语言中的命令行工具
Go语言中的命令行工具Go语言常用命令Go语言的工具箱提供了很多常用工具。它可以被看作是特殊包管理器,用于包的查询、计算包的依赖关系、从远程版本控制系统下载包等任务。它也是一个构建系统,计算文件的依赖关系,然后调用编译器、汇编器和连接器构建程序。它还是一个单元测试、基准测试和性能测试的驱动程序,可让我们非常方便地进行各类代码测试,快速查找各类问题 。可以在命令行中输入go或go help命令来查看内置的帮助文档。以下是常用的命令:bugstart a bug report原创 2022-01-30 19:52:34 · 804 阅读 · 0 评论 -
Go语言中的channel
目录Go语言中的channelchannel声明并初始化channel操作channel的语法缓冲机制无缓冲通道有缓冲通道close和rangeGo语言中的channelDon’t communicate by sharing memory, share memory by communicating.上面这句话是Go语言的主要创造者之一Rob Pike的至理名言,这也体现了Go语言最重要的编程理念。goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。引用类型channel是C原创 2022-01-23 22:19:02 · 1107 阅读 · 0 评论 -
Go语言中的测试、(pprof)性能调优、生成文档和示例代码
文章目录Go语言中的测试、(pprof)性能调优、生成文档和示例代码代码测试(test)测试文件格式传统测试单元测试(表格驱动测试)基准测试(性能测试)覆盖率测试性能分析和调优安装Graphviz使用pprof进行性能分析与调优生成文档和示例代码生成文档生成示例代码Go语言中的测试、(pprof)性能调优、生成文档和示例代码代码测试(test)我们在写程序时应该尽可能多写测试,而不是多做调试。代码测试的目的是确保代码按照你的设想执行,编写测试代码可以尽早地发现程序所存在的问题。go test命令用原创 2022-01-16 19:37:15 · 759 阅读 · 0 评论 -
Go语言中的goroutine
目录Go语言中的并发Go并发优势goroutinegoroutine定义线程和协程的区别创建goroutineGo语言中的并发并发是指在同一段时间内,程序可以执行多个任务。 Go并发优势Go语言最大的特点就是从语言层面支持并发,开发者不用担心并发的底层逻辑、内存管理,只需要编写好自己的业务逻辑即可。Go语言也提供了十分强大的垃圾回收机制,开发者不用担心创建的量如何销毁。 在其他语言中,编写并发程序往往需要使用其他的并发库才能实现。而在Go语言里,想要编写一个并发程序是非常容原创 2022-01-09 23:01:37 · 7641 阅读 · 0 评论 -
Golang中的格式化输入输出
Golang中的格式化输入输出打印输出在Go语言中有多种输出方式,不同的输出适用场景不同。归纳起来有三种,每种还分为3种方式(原内容、原内容+ln、原内容+f)PrintXX()FprintXX()SprintXX() FprintXXFprintXX在Go Web中使用比较多,把内容写到响应流中。以Fprintln()为例,源码如下:// Fprintln formats using the default formats for its operands and原创 2021-12-26 22:33:54 · 864 阅读 · 0 评论 -
并发与多线程的基本概念
目录并发与多线程并发、进程、线程的基本概念和综述并发并行与并发并发基本概念使用并发的原因进程线程并发的实现方法多进程并发多线程并发并发与多线程并发、进程、线程的基本概念和综述并发并发就是在一段时间内,一个程序同时执行多个任务。 并行与并发定义:并行:指在同一时刻,有多条指令在同多个处理器上同时进行。并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速地轮换执行,得到在宏观上有多个进程同时执行的效果,但在微观上并不是同时执行,只是把时间片分成了若干段,使得多个进程快速交替执原创 2021-12-17 21:53:35 · 1225 阅读 · 0 评论 -
Go语言中的错误处理
Golang/Go语言中的资源管理和出错处理,defer、panic、recover原创 2021-12-12 19:28:14 · 1016 阅读 · 0 评论 -
Go语言内置容器(数组(array)、切片(slice)和映射(map))
目录Go语言内置容器(数组(array)、切片(slice)和映射(map))数组(array)声明数组初始化数组数组是值类型切片(slice)从数组/切片生成一个新的切片直接生成一个新的切片声明切片初始化切片slice的扩展为切片添加元素从切片删除元素映射(map)声明映射初始化映射从映射中删除键值对map的key类型及map的遍历Go语言内置容器(数组(array)、切片(slice)和映射(map))Go语言的内置容器主要有数组(array)、切片(slice)和映射(map)。 数原创 2021-11-23 12:48:59 · 4030 阅读 · 0 评论 -
Golang结构体与接口
目录结构体及其方法结构体定义结构体实例化结构体初始化结构体结构体内嵌结构体方法接口与类型接口的定义接口的创建与实现多态空接口类型断言ok-patternswitch-type非侵入式接口结构体及其方法结构体定义结构体Go语言中通过关键字type定义自定义类型,结构体定义需要使用type和struct关键字,格式如下:type 结构体名 struct { 成员变量1 类型1 成员变量2 类型2 成员变量3 类型3 ...} 实例化结构体结构体实例化时,会真正地分配内存。原创 2021-11-21 19:43:39 · 2616 阅读 · 0 评论 -
Go语言中函数的基本知识
目录Go语言中函数的基本知识函数变量多返回值函数可变参数可变参数函数的使用可变参数与内置函数匿名函数和闭包定义并调用匿名函数闭包延迟执行语句Go内置函数结尾Go语言中函数的基本知识在Go语言中,函数是一等公民,这意味着函数不但可以用于封装代码、分割功能、解耦逻辑,还可以化身为普通的值,在其他函数间传递、赋予变量、做类型判断和转换等。Go语言函数支持的特性:参数数量不固定(可变参数)。匿名函数及其闭包。函数本身作为值传递。函数的延迟执行。把函数作为接口调用。 函数变量Go语原创 2021-11-14 23:09:11 · 545 阅读 · 0 评论 -
Golang基本语法
目录切片slice从数组生成一个新的切片直接生成一个新的切片映射map函数声明函数函数变量切片slice切片与数组一样表示多个同类型元素的连续集合,但是切片本身并不存储任何元素,而只是对现有数组的引用。 切片结构包括:地址、长度和容量。地址:切片的地址一般指切片中第一个元素所指向的内存地址,用十六进制表示。长度:切片中实际存在的元素的个数。容量:从切片的起始元素开始到其底层数组中的最后一个元素的个数。 切片的长度和容量都是不固定的,可以通过追加元素使切片的长度和容量原创 2021-10-24 21:27:51 · 2212 阅读 · 0 评论