IT书架 本次搜索耗时 0.127 秒,为您找到 1075 个相关结果.
  • 4. Go 方法与函数的区别?

    4. Go 方法与函数的区别? 方法 函数 4. Go 方法与函数的区别? 在Go语言中,函数和方法不太一样,有明确的概念区分。其他语言中,比如Java,一般来说函数就是方法,方法就是函数;但是在Go语言中,函数是指不属于任何结构体、类型的方法,也就是说函数是没有接收者的;而方法是有接收者的。 方法 func ( t * T ) ad...
  • 3. Go 有哪些数据类型?

    3. Go 有哪些数据类型? 3. Go 有哪些数据类型?
  • 3.Go slice扩容机制?

    3.Go slice扩容机制? Go 1.18版本之前 Go 1.18版本切片扩容 3.Go slice扩容机制? Go 1.18版本之前 扩容会发生在slice append的时候,当slice的cap不足以容纳新元素,就会进行扩容,扩容规则如下 如果新申请容量比两倍原有容量大,那么扩容后容量大小 为 新申请容量 如果原有 slice ...
  • 2.Go GMP和GM模型?

    2.Go GMP和GM模型? GMP模型 GM模型 2.Go GMP和GM模型? 什么才是一个好的调度器? 能在适当的时机将合适的协程分配到合适的位置,保证公平和效率。 Go采用了GMP模型(对两级线程模型的改进实现),使它能够更加灵活地进行线程之间的调度。 GMP模型 GMP是Go运行时调度层面的实现,包含4个重要结构,分别是G、M、...
  • 2.Go 内存逃逸机制?

    2.Go 内存逃逸机制? 概念 逃逸机制 指针逃逸 栈空间不足 变量大小不确定 动态类型 闭包引用对象 总结 2.Go 内存逃逸机制? 概念 在一段程序中,每一个函数都会有自己的内存区域存放自己的局部变量、返回地址等,这些内存会由编译器在栈中进行分配,每一个函数都会分配一个栈桢,在函数运行结束后进行销毁,但是有些变量我们想在函数运...
  • 1.Go slice的底层实现原理?

    1.Go slice的底层实现原理? 1.Go slice的底层实现原理? 切片是基于数组实现的,它的底层是数组,可以理解为对 底层数组的抽象。 源码包中src/runtime/slice.go 定义了slice的数据结构: type slice struct { array unsafe . Pointer le...
  • 《Go语言设计模式》

    《Go语言设计模式》 👨‍🏫 宝典介绍 # 📚 ​宝典内容 《Go语言设计模式》 👨‍🏫 宝典介绍 软件模式是将模式的一般概念应用于软件开发领域,即软件开发的总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括架构模式、分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认同的模式。 本书使用图形和代码结合的方式来解析...
  • 5.Go 方法值接收者和指针接收者的区别?

    5.Go 方法值接收者和指针接收者的区别? 5.Go 方法值接收者和指针接收者的区别? 如果方法的接收者是指针类型,无论调用者是对象还是对象指针,修改的都是对象本身,会影响调用者; 如果方法的接收者是值类型,无论调用者是对象还是对象指针,修改的都是对象的副本,不影响调用者; package main import "fmt" ...
  • 工厂方法模式

    工厂方法模式 2.1 模式动机 2.2 模式定义 2.3 模式结构 2.4 时序图 2.5 模式分析 2.6 实例 2.7 工厂方法模式的优点 2.8 工厂方法模式的缺点 2.9 适用环境 2.10 模式扩展 2.11 Go语言实现 factorymethod.go factorymethod_test.go 2.12 总结 ...
  • 1.Go map的底层实现原理?

    1.Go map的底层实现原理? 1.Go map的底层实现原理? Go中的map是一个指针,占用8个字节,指向hmap结构体 源码包中src/runtime/map.go 定义了hmap的数据结构: hmap包含若干个结构为bmap的数组,每个bmap底层都采用链表结构,bmap通常叫其bucket hmap结构体 // A head...