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

golang
golang专题下共有 258 篇文章
  • Golang零拷贝优化:io.Copy与sendfile详解
    Golang零拷贝优化:io.Copy与sendfile详解
    io.Copy默认使用中间缓冲区导致多次内存拷贝,而sendfile可实现零拷贝。io.Copy默认使用32KB缓冲区在用户空间中转数据,造成文件内容从磁盘到用户空间再到socket的多次复制;sendfile系统调用则直接在内核态完成文件传输,跳过用户空间,降低CPU和内存开销;Go标准库如net/http在静态文件服务等条件下会自动使用sendfile;手动触发可通过syscall.Sendfile实现,但需满足源为普通文件、目标支持sendfile等条件;适用场景包括大文件传输、静态资源服务和高并发
    Golang· Go教程   |  3星期  |   golang 性能优化 io.Copy 零拷贝 sendfile 104浏览 收藏
  • Golang错误链处理,Unwrap与Is使用详解
    Golang错误链处理,Unwrap与Is使用详解
    在Go语言中,使用errors.Unwrap可提取错误链中的下一层错误,errors.Is用于判断错误链是否包含特定错误。1.错误包装应使用fmt.Errorf搭配%w动词,以保留原始错误信息。2.errors.Unwrap用于手动遍历错误链,提取每一层的底层错误。3.errors.Is自动递归检查整个错误链,判断是否包含指定错误值。4.自定义错误类型时实现Is方法可支持错误判断。5.不应滥用错误包装,避免无意义重复包装。6.提取特定错误类型时应优先使用errors.As。7.单元测试应模拟多层错误链验证
    Golang· Go教程   |  3星期  |   golang 错误包装 错误链 errors.Is errors.Unwrap 474浏览 收藏
  • Golang日志配置:前缀与路径设置详解
    Golang日志配置:前缀与路径设置详解
    Golang配置日志输出主要通过设置前缀和输出位置实现。1.使用log.SetPrefix设置日志前缀以区分来源;2.使用log.SetOutput指定日志输出目标,如文件或控制台;3.通过log.New创建自定义Logger并结合log.Ldate、log.Ltime等标志控制日志格式;4.可选用logrus或zap等第三方库支持日志级别、结构化日志及自定义格式;5.多协程环境下确保io.Writer线程安全,标准库log、logrus和zap均具备线程安全性,可放心在并发场景中使用。
    Golang· Go教程   |  3星期  |   golang 日志 配置 日志前缀 输出路径 460浏览 收藏
  • Linux下Golang安装教程:各发行版包管理解析
    Linux下Golang安装教程:各发行版包管理解析
    安装Golang的核心在于选择合适的安装方式并正确配置环境变量。推荐使用预编译的二进制包,因其简单快捷且包含最新稳定版本;访问官方页面下载对应架构的压缩包;解压至/usr/local目录;编辑.bashrc或.zshrc文件,添加GOROOT、GOPATH及PATH环境变量;运行source命令使配置生效;最后通过goversion验证安装。不同发行版的包管理器提供的Go版本可能较旧,易导致兼容性问题,且依赖管理和环境变量配置存在差异。对于依赖管理,推荐使用GoModules,其无需将项目限制在GOPAT
    Golang· Go教程   |  3星期  |   golang Linux 环境变量 安装 GoModules 437浏览 收藏
  • Golang值接收者与指针区别详解
    Golang值接收者与指针区别详解
    在Golang中应根据是否需修改状态、接口实现需求及性能考量选择接收者类型。若方法需修改接收者状态,应使用指针接收者;若希望值和指针都能实现接口,应使用值接收者;若结构体较大或方法调用频繁,建议使用指针接收者以避免复制开销。
    Golang· Go教程   |  3星期  |   golang 接口实现 方法接收者 指针接收者 值接收者 331浏览 收藏
  • Golangpanic恢复测试与recover验证
    Golangpanic恢复测试与recover验证
    1.基本恢复测试验证recover能否捕获panic值;2.多层调用测试确保嵌套函数中panic能被外层recover捕获;3.recover调用位置测试确认必须在defer中使用;4.并发环境测试验证goroutine中的独立恢复;5.panic类型测试覆盖不同类型的panic值;6.panic后程序状态测试检查恢复后的变量和资源状态;7.与error的区分强调panic用于不可恢复错误;8.资源清理建议使用defer确保释放;9.recover性能影响较小但频繁panic会影响性能;10.避免过度使用
    Golang· Go教程   |  3星期  |   golang defer recover panic error 428浏览 收藏
查看更多
课程推荐
  • 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次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码