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

golang
golang专题下共有 1187 篇文章
  • Golang反射与泛型结合使用详解
    Golang反射与泛型结合使用详解
    在Go语言中,通过reflect包可以获取泛型类型参数的实际类型。1.首先获取reflect.Type对象;2.通过该对象访问字段的具体类型。例如,使用reflect.TypeOf获取实例的类型信息,再通过FieldByName方法获取字段类型。反射与泛型结合常用于ORM框架、序列化/反序列化及依赖注入等场景。性能方面,应避免过度使用反射,优先使用类型断言,并缓存反射结果以提升效率。实验表明,类型断言的性能显著优于反射操作。合理使用反射与泛型可编写出灵活且通用的代码,但需权衡性能与灵活性。
    Golang· Go教程   |  2星期  |   golang 性能 反射 泛型 类型参数 370浏览 收藏
  • Golang大量goroutine内存优化技巧
    Golang大量goroutine内存优化技巧
    优化高并发Golang程序内存占用,需从栈大小调整与资源复用两方面入手。1.初始栈默认为2KB,自动扩容可能导致大量goroutine下内存激增,但手动调小需谨慎以免影响性能,普通开发者不建议修改;2.使用sync.Pool缓存临时对象、复用协程池减少频繁创建销毁;3.避免设计不合理导致的goroutine泛滥,通过context控制生命周期、限流、缓冲channel等手段控制数量。合理控制与资源复用是关键,栈调整属底层操作应慎用。
    Golang· Go教程   |  4天  |   golang Goroutine 内存占用 栈大小 池化技术 370浏览 收藏
  • Go语言structs字段报错?手把手教你快速解决!
    Go语言structs字段报错?手把手教你快速解决!
    在Golang中,结构体字段未定义错误通常由字段名拼写错误、作用域限制或访问路径不正确引起。1.检查字段拼写是否与结构体定义一致,注意大小写敏感;2.确保访问的字段为公开字段(首字母大写),否则需通过公开方法间接访问;3.若结构体嵌套,需使用完整路径访问嵌套字段;4.使用指针访问时,Go会自动解引用,直接用.操作符即可;5.可借助反射在运行时检查字段是否存在。通过以上步骤可有效排查和解决此类问题。
    Golang· Go教程   |  1个月  |   golang 反射 结构体 字段未定义 字段作用域 369浏览 收藏
  • Golang如何解析XML配置文件 答复结合encoding xml与文件读取操作
    Golang如何解析XML配置文件 答复结合encoding xml与文件读取操作
    Golang解析XML配置文件的核心方法是使用encoding/xml包将XML数据映射到结构体。首先定义与XML结构对应的Go结构体,其次用ioutil.ReadFile读取文件内容,最后通过xml.Unmarshal解析数据到结构体。对于属性处理,可在结构体字段的xmltag中使用attr关键字;若XML结构不确定,可采用xml.Token接口逐个解析元素;命名空间可通过指定结构体字段的xmltag来处理;为提高性能,可使用xml.Decoder的CharsetReader、减少内存分配、采用流式解析
    Golang· Go教程   |  1个月  |   golang XML解析 369浏览 收藏
  • Golang可变参数函数使用方法详解
    Golang可变参数函数使用方法详解
    在Go语言中,可变参数函数是一种允许函数接受任意数量参数的语法机制。它通过在函数最后一个参数前加上...来定义,表示该参数可以接收多个值(0个或多个)。例如:funcsum(nums...int)定义了一个可变参数函数,调用时如sum(1,2,3)或sum()都合法。传入的参数会被自动封装为一个切片,函数内部可通过遍历该切片来处理所有参数。定义时需注意:可变参数必须是函数的最后一个参数,且每个函数只能有一个可变参数。此外,调用时也可以传入一个切片并加...来展开,如sum(numbers...)。使用时需
    Golang· Go教程   |  1个月  |   golang 参数 切片 可变参数函数 ... 369浏览 收藏
  • Golang并发陷阱:channel阻塞与goroutine泄漏解析
    Golang并发陷阱:channel阻塞与goroutine泄漏解析
    要解决Golang并发编程中的常见陷阱,需掌握以下要点:1.避免channel阻塞的方法包括使用缓冲channel、select语句、超时机制及确保channel最终关闭;2.防止goroutine泄漏应使用context控制生命周期、确保channel有发送与接收方、并借助sync.WaitGroup等待所有goroutine完成;3.复杂并发场景下需通过锁、原子操作、sync.Once及errgroup处理资源竞争与协作;4.性能调优可借助pprof分析、调整GOMAXPROCS、减少锁竞争及使用连接
    Golang· Go教程   |  1个月  |   golang 并发编程 陷阱 goroutine泄漏 channel阻塞 369浏览 收藏
查看更多
课程推荐
  • 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次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码