Go语言入门学习之Channel通道详解

目录前言通道的声明通道的初始化发送和接收数据通道的关闭通道的容量与长度缓冲通道与无缓冲通道双向通道和单向通道遍历通道fibonacci 数列参考文章:总结前言不同于传统的多...

一起聊聊Go语言中的语法糖的使用

目录前言进入正题可变长参数声明不定长数组... 操作符切片循环忽略变量、字段或者导包短变量声明另类的返回值总结前言由于工作变动,我现在已经开始使用Golang了。用了一段时...

golang之数组切片的具体用法

目录数组切片切片的创建直接声明new方式初始化字面量make方式截取方式s[:]s[i:]s[:j]s[i:j]s[i:j:x]看个例子切片的扩容内存对齐空切片和nil切片数组是值传递,切片是引用传递...

go语言中基本数据类型及应用快速了解

目录整数特殊的整数类型如果想确定int和uint的大小溢出浮点数复数布尔值字符串字符串的“长度”与遍历字符串的做法字符串的“长度”遍历字符串Rune与B...

go语言中切片Slice与数组Array对比以及panic: runtime error: index out of range问题解决

目录前言一、go slice是什么二、go slice实战案例1.slice创建、使用2、slice的长度和容量概念理解3. 切片扩容及slice panic: runtime error: index out of range附:go 判断...

教你一招完美解决vscode安装go插件失败问题

目录前置用vscode新建一个go文件使用go mod 代理来安装总结 前置从https://studygolang.com/dl下载go1.14.6.windows-amd64.msi安装即可,安装路径选择默认,安装完成后会自动帮...

Golang优雅保持main函数不退出的办法

目录高能预警正文问题演示:解决办法演示操作系统信号阻塞上下文操作阻塞WaitGroup阻塞小结总结高能预警本文包含演示部分,请读者自行copy代码编译体验。参考资料:sync.WaitGrou...

Go WEB框架使用拦截器验证用户登录状态实现

目录wego拦截器main函数登录逻辑登录拦截器的实现index页面的实现wego拦截器wego拦截器是一个action(处理器函数)之前或之后被调用的函数,通常用于处理一些公共逻辑。拦截器能...

go goroutine实现素数统计的示例

统计1-120000的素数1、分析可以通过分段,go协程来实现
2、协程1统计1---30000
3、协程2统计30001---60000
4、协程3统计60001---90000
5、协程4统计90001---120000
如果有更...

Go语言实现UDP协议及TCP通讯

⼀、使用Golang创建⼀一个TCP连接1.服务端处理理流程a.监听端口b.接受客户端的链接c.创建Goroutine,处理这个链接(⼀个服务端要链接多个客户端,所以使用Goroutine⾮常简单)题外...

Golang文件读写操作详情

目录一、概念二、读取文件操作2.1 打开和关闭文件defer 语句2.2 file.Read() 读取文件Read 方法定义ReadAt方法定义一次性读取循环读取2.3 bufio 读取文件2.4 ioutil 读取文...

Go语言中的IO操作及Flag包的用法

一、格式化输入和输出1.从终端获取用户的输入fmt.Scanf 空格作为分隔符,占位符和格式化输出的一致fmt.Scan 从终端获取用户的输入,存储在Scanln中的参数里,空格和换行符作为分...

Go1.18新特性工作区模糊测试及泛型的使用详解

目录前言Go工作区模式(Go Workspace Mode)现实的情况多仓库同时开发多个新仓库开始开发工作区模式是什么推荐的使用方法使用时的注意点Go模糊测试(Go Fuzzing Test)为什么Golang...

深入了解Golang网络编程Net包的使用

目录1.TCP 服务2.TCP 连接在系统调用层面的实现3.Go中TCP连接的实现4.结语​最近做了一个项目,其中用到了网络编程,下面和大家分享下在Go中网络编程的实现。在Go中, 网络编程主...

Go中的关键字any interface是否会成为历史

目录引言示例增加新关键字后的对比引言大家在看 Go1.18 泛型的代码时,不知道是否有留意到一个新的关键字 any。示例func Print[T any](s []T) {}之前没有专门提过,但有没有小...

本地使用Docker搭建go开发环境的全过程

目录前言安装1.docker安装2.go安装3.配置4.运行5.完成总结前言对于我这种小白来说,本地环境搭建常规的操作一向是直接去go官网下载go安装包,本机进行安装,然后配置相应的GOROOT...

Go语言中的数据竞争模式详解

目录前言Go在goroutine中通过引用来透明地捕获自由变量 切片会产生难以诊断的数据竞争 并发访问Go内置的、不安全的线程映射会导致频繁的数据竞争 Go开发人员常在pass-by-va...

Go语言操作redis数据库的方法

先上命令速查网站,菜鸟yyds
https://www.runoob.com/redis/redis-strings.html
操作redis的包是go-redis/redis
官方文档 https://redis.uptrace.dev/guide/
github https://...

Go位集合相关操作bitset库安装使用

目录简介安装使用为什么要使用它?总结一点闲话参考简介我们都知道计算机是基于二进制的,位运算是计算机的基础运算。位运算的优势很明显,CPU 指令原生支持、速度快。基于位运算...

Go1.16新特性embed打包静态资源文件实现

目录背景embed 嵌入字符串、字节切片、文件嵌入嵌入文件嵌入文件夹嵌入匹配FS 文件系统总结:背景相信有一部分人喜爱 GO 的初衷大概是:跨平台静态编译,如果在没用通过 CGO 引用...

Go+Kafka实现延迟消息的实现示例

目录前言原理简单的实现生产者延迟服务消费者改进点通用的延迟服务生产者负责延迟服务总结前言延迟队列是一个非常有用的工具,我们经常遇到需要使用延迟队列的场景,比如延迟通...

Go语言学习笔记之错误和异常详解

目录错误异常总结错误Go 语言通过内置的错误接口提供了非常简单的错误处理机制,Error 类型是一个接口类型。type error interface { Error() string}可以在编码中通过实现...

Go语言中使用urfave/cli命令行框架

命令行参数处理以及urfave/cli使用1.通过Os.Args获取cli的参数package main import ( "fmt" "os") func main() { if(len(os.Args) > 1) { for _,value := rang...

go开源项目用户名密码验证的逻辑鬼才写法

引言这两天在做微服务上云的事,之前一直是本地运行,后来在服务器搭建了生产环境集群。上云时出现了一些幺蛾子云上的服务都需要身份验证的,没有专用网关的话,至少也要设置 basic...

GO语言包管理工具go mod以及包详解

目录1.GO中包的定义与介绍2. 包管理工具 go mod2.1 自定义包 (可以包含多个go文件)2.1.1 建立项目并go mod init初始化2.1.2 自定义一个包(文件夹)并书写方法2.1.3 引入自定...

Go语言实现超时的三种方法实例

目录前言方法一:用两个通道 + A协程sleep方法二:使用Timer(定时器)方法三:使用context.WithTimeout附:go 实现超时退出总结前言超时,指一个协程A开启另一个协程B,A会阻塞等待B一段指...

golang 手写贪吃蛇示例实现

目录背景需求构思逻辑构思代码结构小结背景题主现在是php程序员, 学了一周的golang, 深刻的感受到了其特性的优雅及功能的强大, 为了增强熟练度, 决定来写个贪吃蛇来践行下....

Go语言中Goroutine的设置方式

一、 通过runtime包进行多核设置1.NumCPU()获取当前系统的cpu核数2.GOMAXPROCS设置当前程序运行时占用的cpu核数版本1.6之前默认是使用1个核,而之后是全部使用。好玩的程序:fu...

Go语言自带测试库testing使用教程

目录简介单元测试表格驱动测试分组和并行主测试函数其他性能测试其他选项示例测试总结简介testing是 Go 语言标准库自带的测试库。在 Go 语言中编写测试很简单,只需要遵循 Go...

Go语言测试库testify使用学习

目录简介准备工作assertContainsDirExistsElementsMatchEmptyEqualErrorEqualValuesErrorErrorAsErrorIs逆断言Assertions 对象requiremocksuite测试 HTTP 服务器总结简介te...

Go语言中的数据格式(json、xml 、msgpack、protobuf)使用总结

在分布式的系统中,因为涉及到数据的传输,所以一定会进行数据的交换,此时就要定义数据交换的格式,例如二进制、Json、Xml等等。本篇文章就是总结一下常用的几种数据格式。一、Jso...

详解Go 中的时间处理

​作为程序员,我们经常需要对时间进行处理。在 Go 中,标准库 time 提供了对应的能力。本文将介绍 time 库中一些重要的函数和方法,希望能帮助到那些一遇到 Go 时间处理问题就需...

一文带你了解Go语言中的单元测试

目录基本概念示例一:取整函数基本测试示例二:Fail()函数示例三:FailNow函数实例四:Log和Fetal函数基本概念上一节提到,代码完成的标准之一还包含了单元测试,这部分也是很多开发流...

Go语言对前端领域的入侵WebAssembly运行原理

目录引言WebAssembly 运行原理Go WebAssembly 运行原理Go WebAssembly 初体验第一步第二步第三步第四步第五步Javascript 真的需要担心 Go WebAssembly 的威胁么?引言从 Go...

Go语言中map使用和并发安全详解

目录1 map使用1.1 map定义1.2 map的使用和概念1.3 map的容量1.4 map的使用1.4.1 map的遍历1.4.2 map的删除和断言1.5 map的坑2 并发安全2.1 不安全原因2.2 解决方案总结1 ma...

Golang实现Biginteger大数计算实例详解

正文Golang中的big.Int库支持大数计算,基于这个库封装了一层Bitinteger,支持字符串类型的大数,加减乘除等计算。其他计算可以参考基于big.Int来实现。package BigIntegeimport...

Go语言结构体Go range的学习教程

目录正文Go Range正文在前一篇博客我们学习了 Go 数组,其要求所有元素为同一数据类型,如果希望存储不同类型的数据,就要用到结构体相关知识。结构体的定义:存储相同或不同类型的...

golang图片处理库image基本操作

目录基本操作读取新建保存图片修改转换裁剪缩放基本操作图片的基本读取与保存。读取图片读取和文件读取类似,需要先获取流:注册图片的解码器(如:jpg则import _ "image/jpeg", pn...

Golang实现断点续传功能

本文实例为大家分享了Golang实现断点续传的具体代码,供大家参考,具体内容如下1、将文件pic_src.jpg复制到pic_des.jpg文件;2、读写过程中断时,读写的中断位置会记录在“pic...

Go代码检查的推荐工具及使用详解

目录1. Golint2. Golangci-lint3. Go-reporter1. Golint(1)安装golintgit clone https://github.com/golang/lint.git cd lint/golintgo install(2)使用方式# 检查单个文件golin...

Golang运行报错找不到包:package xxx is not in GOROOT的解决过程

目录1 区分几个路径2 GO111MODULE3 解决方案方案一:关闭 go mod 模式方案二:使用go mod 模式总结1 区分几个路径GOROOT:Golang的安装路径,安装之后就默认自带了GOPATH:Golang的工...

Go日志框架zap增强及源码解读

目录正文初始化Logger打一条Log小结增强zap自定义sinkerror调用栈正文本文包括两部分,一部分是源码解读,另一部分是对zap的增强。由于zap是一个log库,所以从两方面来深入阅读za...

Go iota关键字与枚举类型实现原理

目录1. iota关键字2. 枚举类型1. iota关键字iota是go语言的常量计数器,只能在常量的表达式中使用,其值从0开始,在const中每新增一行iota自己增长1,其值一直自增1直到遇到下一个cons...

Makefile构建Golang项目示例详解

目录背景创建项目并运行添加 Makefile 文件Makefile概念变量使用 Makefile 自动化任务背景构建和测试大型项目时都会很耗时,且容易出错。开发者在开发过程中需要不断执行go b...

快速掌握Go 语言 HTTP 标准库的实现方法

目录HTTP clientClient 结构体初始化请求NewRequest 初始化请求Request准备 http 发送请求Transport获取空闲连接 queueForIdleConn建立连接 queueForDial等待响应http serv...

Go语言单控制器和多控制器使用详解

本文实例为大家分享了Go语言单控制器和多控制器使用的具体代码,供大家参考,具体内容如下一. 单控制器在Golang的net/http包下有ServeMux实现了Front设计模式的Front窗口,Serve...

golang实现文件上传并转存数据库功能

本文实例为大家分享了golang实现文件上传并转存数据库的具体代码,供大家参考,具体内容如下需求上传图片,且可选择将图片保存到数据中。一、流程图二、步骤1.上传文件接口获取文...

Go Redis客户端使用的两种对比

目录介绍性能对比Redigo库演示go-redis组件介绍和使用演示 性能测试介绍go-redis和redigo底层是通过调用的万能 Do 方法实现, 但是redigo:由于输入是万能类型所以必须记住每...

Go泛型实战教程之如何在结构体中使用泛型

目录01 目标02 实现01 目标假设我们要实现一个blog系统,在该系统中有以下两个结构体:type Category struct { ID int32 Name string Slug string}type Post struct {...

go语言中的defer关键字

我是谁defer - 顾名思义翻译过来叫 延迟, 所以我们通常称呼 defer func() 这样 defer 后面紧跟的函数为 延迟函数.作者注: 不过从实际应用来讲, 延迟函数通常用来做一些函数...

返回顶部
顶部