专题:go
共69篇相关文章

Go语言学习笔记(一)中,有哪些用法技巧?
一、基础知识 1、 package关键字 + package表示当前代码所属的包,是一种组织结构,其它package通过包名调用这个包下内容 + package是必须的,每个文件的package必须存在有...

Go语言学习笔记(二)中是什么?
一、字符 1、概述 + 字符型存放单个字母或单个文字 + GO语言不支持字符类型,在GO语言中所有字符值都转换为对应的编码表中int32值 + GO语言默认使用UTF8编码 2、编码发展...

Go语言学习笔记(三)中是什么?
一、浮点数 1、概述 + 浮点类型用于存储带有小数点的数字 + 一个整数数值可以赋值给浮点类型但是一个整型变量不可以赋值给浮点类型 + 浮点数进行运算的结果是浮点数 +...

Go语言学习笔记(四)中是什么?
一、字符串 1、字符串截取 + 可以使用 len(字符串变量) 获取字符串的字节长度,其中英文占1个字节长度,中文占用3个字节长度 + 可以使用 变量名[n] 获取到字符串第n+1个字节...

如何优雅地将Go语言结构体转换为Map?
前言 在Go开发中,我们经常需要将结构体转换为map[string]interface{}类型,特别是在: 调用第三方API时 动态处理JSON数据时 需要灵活修改字段时 解决方案 利用JSON作为中间格式,实现结构体到Map的转换: fu...

Go的GMP调度模型各自职责如何构成一个高效并发系统的核心?
一、为什么需要调度模型? 先问一个问题: Go 里可以同时开成千上万个 goroutine,它是怎么做到的? 如果每个 goroutine 都对应一个操作系统线程,那系统早就炸了。 因为: 线程很重(几 MB 栈空间) 创建销毁成本高 线程...

Go语言中抢占式调度是如何实现的?
一、什么是“抢占式调度”? 先理解什么是“抢占”。 非抢占式(早期 Go) 早期 Go(1.14 之前): goroutine 只有在 函数调用 channel 操作 syscall runtime 检查点 才会被切换。 如果一个 goro...

如何有效降低Go语言中频繁抢占CPU的频率?
前言 “能抢占”和“频繁抢占”是两回事。 如果抢占太频繁,会导致: 上下文切换开销大 cache 失效 调度成本增加 性能下降 所以 Go 的设计目标是: 能抢占,但不会乱抢占。 我们一步步讲清楚它是怎么控制频率的。 一、核心原则:不是随时...

为何说goroutine相较于线程在资源占用上更为轻盈?
前言 很多人听说: goroutine 很轻,可以开几十万 但为什么轻?到底轻在哪里? 我们从 内存、创建成本、切换成本、调度方式 四个维度拆开讲清楚。 一、最核心的一句话 goroutine 轻,是因为它是用户态调度 +...

goroutine栈自动扩容机制是怎样的?
前言 goroutine 初始栈很小(≈2KB),但可以自动变大。 那它是怎么做到的? 一、先说结论 goroutine 的栈扩容是通过: 在函数调用前做“栈空间检查”,如果不够,就调用 runtime 进行扩容。 关键机制是: stack...

GOMAXPROCS在Go语言中如何影响并发性能?
GOMAXPROCS 决定: 同一时间最多有多少个 goroutine 可以并行运行(占用 CPU)。 更准确说: 它决定 P(Processor)的数量。 一、回忆一下 GMP 模型 我们之前讲过: G = goroutine(任务) M...

如何将Go与Vue完美结合实现行为验证码功能?
前言 在现代 Web 应用中,验证码是防止机器人攻击和恶意请求的重要手段。相比传统的图形验证码,滑动行为验证码具有更好的用户体验。本文将介绍如何使用 go-captcha 库在 Go 后端和 Vue 前端实现滑动验证码功能。 技术栈 后端:...

Go版本升级后,兼容性依赖编译错误如何排查并解决?
问题排查指南 问题描述 执行 go run main.go 时出现以下编译错误: # github.comgo-playgroundvalidatorv10 ......gopkgmodgithub.comgo-play...

如何安装并使用Go版本管理器?
前言 在 Go 开发者日常工作中,经常会遇到需要同时使用多个 Go 版本的情况——比如项目依赖旧版本的特性、测试新版本的兼容性,或者团队成员使用不同版本。手动管理 Go 环境不仅麻烦,还容易导致环境污染和切换不便。这时,一款轻量级的命令行工...

如何将Go程序与远程TCPdump功能实现无缝集成?
最近开发的telemetry采集系统上线了。听起来高大上,简单来说就是一个grpcudp服务端,用户的机器(路由器、交换机)将它们的各种统计数据上报采集、整理后交后端的各类AI分析系统分析。目前华为思科的大部分设备支持。 上线之后,各类...
