当前位置:首页 > 文章列表 >golang

golang
golang专题下共有 1007 篇文章
  • Golangfmt库格式化方法详解
    Golangfmt库格式化方法详解
    Golang的fmt库中Printf用于格式化输出到标准输出,而Sprintf用于格式化并返回字符串。1.Printf通过占位符如%s和%d将变量格式化后输出到控制台;2.Sprintf同样使用占位符,但结果作为字符串返回,供后续处理;3.常用占位符包括%v、%T、%d、%s等,满足不同类型数据的格式化需求;4.可通过宽度和精度控制输出格式,如%10d指定宽度,%.2f指定小数位数;5.应用场景涵盖日志记录、错误处理、数据序列化、用户界面和测试;6.性能敏感场景应避免频繁使用Sprintf,推荐使用str
    Golang· Go教程   |  2星期  |   golang fmt库 480浏览 收藏
  • Golang访问者模式避免类型断言方法
    Golang访问者模式避免类型断言方法
    使用反射可以避免类型断言并实现动态分派。传统访问者模式需要为每个类型定义Accept方法并做类型判断,导致代码冗余且难以维护。通过Go的reflect包,可动态查找Visitor中的VisitXxx方法并调用,步骤包括:获取元素类型名、拼接方法名、反射调用对应方法。这种方式统一Accept实现,减少重复代码,提升扩展性与维护性,但需注意反射性能损耗、运行时错误风险及代码可读性问题。
    Golang· Go教程   |  2星期  |   golang 反射 类型断言 访问者模式 动态分发 431浏览 收藏
  • Golang卡死怎么排查?死锁问题详解
    Golang卡死怎么排查?死锁问题详解
    Golang程序卡死的常见原因包括死锁、资源耗尽、无限循环、阻塞操作等。排查方法主要有:1.使用pprof工具分析CPU、内存、goroutine状态;2.通过GODEBUG=scheddetail=1获取调度信息;3.添加日志辅助定位问题;4.审查涉及锁、channel、goroutine的代码,识别潜在死锁或泄漏;5.利用context控制goroutine生命周期,避免泄漏。避免死锁的方法包括不嵌套锁、设置超时、使用select语句、统一锁获取顺序。此外,还需监控系统资源和性能指标,结合Promet
    Golang· Go教程   |  2星期  |   golang Goroutine 死锁 卡死 pprof 426浏览 收藏
  • Golang编译失败解决方法及跨编译配置
    Golang编译失败解决方法及跨编译配置
    Golang嵌入式开发编译失败通常因交叉编译环境配置不当,如缺少目标平台工具链或环境变量错误;解决方法:1.确认目标平台(如ARM/Linux);2.安装对应交叉编译工具链(如arm-linux-gnueabihf-gcc);3.设置环境变量GOOS、GOARCH、CGO_ENABLED、CC、CXX等;4.确保依赖库支持目标平台;5.测试环境可通过简单程序验证编译结果;6.若出现cgo识别问题,可指定CC/CXX路径或禁用CGO。配置完成后source配置文件并尝试编译,若仍失败需检查依赖、CGO兼容性
    Golang· Go教程   |  2星期  |   golang 环境变量 嵌入式开发 CGO 交叉编译 160浏览 收藏
  • Golang解析复杂协议,手动解码二进制数据
    Golang解析复杂协议,手动解码二进制数据
    解析二进制数据流需明确协议结构并按顺序处理字段。1.先确定协议格式,如头部、长度标识、校验和等;2.使用bytes.Buffer和binary.Read按字节序逐个读取字段;3.对变长字段结合长度信息提取数据内容;4.嵌套结构可重构buffer继续解析;5.字符串等特殊类型使用buf.Next提取;6.错误处理需区分EOF与其他异常;7.每步读取前检查剩余缓冲区长度防止越界。
    Golang· Go教程   |  2星期  |   golang bytes.Buffer 二进制数据流 binary.Read 协议解析 197浏览 收藏
  • Golang中new与make指针区别详解
    Golang中new与make指针区别详解
    在Go语言中,new用于分配零初始化内存并返回指针,适用于基本类型和结构体;make用于创建slice、map和channel并返回类型本身。1.new分配指定类型的零值内存并返回指针,适合需要修改底层值的场景;2.make执行类型特定初始化,用于创建slice、map和channel三种复合类型;3.选择new还是make取决于需求,复合类型用make,其他类型用new;4.两者的性能差异可忽略,应优先根据用途选择合适的方法。
    Golang· Go教程   |  2星期  |   golang 指针 内存分配 new make 199浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    338次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    204次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    167次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    128次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码