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

golang
golang专题下共有 12175 篇文章
  • Golang结构体为何用指针?大型结构体拷贝成本分析
    Golang结构体为何用指针?大型结构体拷贝成本分析
    在Golang中,使用结构体指针主要是为了避免大型结构体的拷贝开销,并允许函数或方法修改结构体本身。1.大型结构体应使用指针传递以减少CPU和内存开销;2.需要修改结构体时必须使用指针;3.方法接收者使用指针可避免拷贝并支持修改;4.小型结构体或无需修改时适合使用值类型;5.可通过unsafe.Sizeof()判断结构体大小决定是否使用指针;6.使用指针需注意空指针、内存泄漏、并发安全及代码可读性问题。
    Golang· Go教程   |  1个月  |   golang 指针 性能优化 结构体 拷贝开销 163浏览 收藏
  • Golang策略模式优势与应用技巧解析
    Golang策略模式优势与应用技巧解析
    策略模式是一种将算法或行为封装成独立结构体的设计模式,允许运行时切换逻辑。其核心优势在于高内聚低耦合、易于扩展维护及动态切换逻辑。1.通过抽象行为形成独立模块,降低耦合度并提升稳定性;2.新增功能无需修改原有代码,符合开闭原则;3.可根据条件动态选择不同策略,适用于复杂后端服务。实现上,Golang通过接口定义策略,结合上下文结构体注入具体策略实例。使用时需注意接口设计稳定、策略管理方式及避免过度设计。
    Golang· Go教程   |  1个月  |   golang 接口 扩展性 解耦 策略模式 173浏览 收藏
  • Golang可变参数与切片使用详解
    Golang可变参数与切片使用详解
    在Go语言中,定义可变参数函数的方法是在参数类型前加上...,该参数必须是最后一个参数,并在函数内部作为切片处理;例如funcsum(nums...int)int函数可用于接收任意数量的整数参数并求和;调用时可以直接传入多个值,如sum(1,2,3),也可以传入一个展开的切片,如sum(values...);若要合并两个切片后传入,可使用append(a,b...)...;直接调用sum()相当于传入空切片,而sum(nil...)则传入nil切片,两者在函数内部可能有细微差别;此外,可变参数不仅限于基本
    Golang· Go教程   |  1个月  |   golang 函数 切片 可变参数 ...语法 117浏览 收藏
  • Golang策略模式:接口组合替代继承实现
    Golang策略模式:接口组合替代继承实现
    在Golang中实现策略模式通过接口与组合替代继承机制,具体步骤为:1.定义统一行为接口,如PaymentStrategy;2.实现具体策略如Alipay、WechatPay;3.通过结构体字段组合策略接口到上下文PaymentContext中;4.动态切换策略或使用配置化管理。该方式符合Go语言设计哲学,保持简洁与低耦合,同时具备良好的扩展性与灵活性。
    Golang· Go教程   |  1个月  |   golang 接口 组合 策略模式 PaymentStrategy 142浏览 收藏
  • GolangWebSocket实时通信实现教程
    GolangWebSocket实时通信实现教程
    如何在Golang中实现WebSocket通信?使用标准库net/http配合gorilla/websocket包可快速搭建高性能WebSocket服务端和客户端。1.建立连接需定义Upgrader配置并通过Upgrade方法升级HTTP连接;2.收发消息通过ReadMessage和WriteMessage方法实现,建议分别在goroutine中处理;3.保持连接稳定可通过添加心跳机制、设置超时时间和自动重连机制实现;4.客户端连接使用websocket.Dial发起请求,并同样处理收发消息逻辑。
    Golang· Go教程   |  1个月  |   golang 实时通信 websocket gorilla/websocket 连接稳定 489浏览 收藏
  • Golang内存优化技巧分享
    Golang内存优化技巧分享
    逃逸分析是Go编译器判断变量分配在堆还是栈的机制,它能减少堆分配、降低GC压力;常见逃逸情况包括返回局部变量指针、赋值给interface{}、goroutine引用、闭包捕获等;可通过-gcflags="-m"查看逃逸行为。内存池通过sync.Pool复用对象,减少重复分配,适用于高频创建销毁的场景,如缓冲区或结构体;使用时需定义New函数获取对象,并注意Pool并发安全但不保证对象持久存在。实际开发中,应先用pprof定位内存热点,结合逃逸分析避免不必要的堆分配,再对高频大对象使用Pool复用,同时减
    Golang· Go教程   |  1个月  |   golang 内存分配 内存池 逃逸分析 sync.Pool 314浏览 收藏
查看更多
课程推荐
  • 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通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码