首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Go
二郎腿
创建于2024-05-23
订阅专栏
Go 相关知识点
等 7 人订阅
共21篇文章
创建于2024-05-23
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
一文读懂go 语言的继承与多态
一、引言 Go 语言是一种非常简洁的语言,与 C++ 或 Java 等语言不同,没有传统意义上的类(class),也没有直接的继承和多态机制。Go 是通过接口(interface)来实现类似多态的功能
一文读懂 go 观察者模式
一、背景 最近看到zookeeper相关的文章,发现其本质是文件系统+观察者设计模式的分布式管理框架,包括 consul 等框架也是使用了观察者设计模式,而观察者模式实际上与 sync.Cond 库功
go 重写 http 请求重定向
一、背景 当使用 Go 语言进行 HTTP 请求时,默认情况下,http.Client 会自动处理服务器返回的重定向响应(3xx 状态码)。但有时候,我们可能需要在请求中禁止自动的重定向。本文将详细介
go 实现责任链模式
一、问题 业务扩张与缩减过程中,对应地就会有功能的增减,如果每次功能的增减都需要改动非常多的代码,就会导致代码逻辑不够清晰易懂,业务逻辑混乱的问题; 在实际开发中,将整个业务流程拆分不同的子流程,对应
go panic 与 throw 的区别
一、基本介绍 panic 和 throw 都是 go 中抛出异常的内置函数,throw 常见于源码中,用户不能单独使用,panic 可以被用户单独使用,抛出异常时会中断当前程序; 二、panic pa
go 语言的函数选项模式
一、基本介绍 对于C++语言,如果某个函数需要新增参数,可以通过函数重载或是添加可选参数的方式实现,该函数以前的调用方不需要重新更改,如下: go 语言没有函数重载,也不支持可选参数,所以对于某个函数
go 普通方法与接口方法
一,基本介绍 方法能给用户自定义的类型添加新的行为,它和函数的区别在于方法有一个接收者,可以理解为方法是被指定了一个固定参数的函数; 这个参数通常叫做接收者,接收者的类型可以是值类型,也可以是指针类型
go 关键字之 range
一、基本介绍 range是go提供的一种遍历方式,可以遍历字符串、数组、切片、map、channel等; 根据被遍历对象的不同,所有的range遍历都会在cmd/compile/internal/gc
go 源码解析 - context
一、简述 context 包提供了在其他跨API边界和 goroutine 之间传递特定数据、取消操作以及设置截止时间的机制,可以帮助用户管理 goroutine 的生命周期,以更好地管理并发操作,避
go 并发之 chan
一、简述 传统的多线程间通信方式是通常是以共享内存实现的,多个线程同时读写某个内存上的变量,并通过互斥锁解决并发读写问题,<span style="color: red;">需要开发人员手动管理锁,可
go 源码解析 - sync.Pool
一、简述 Pool 是一组可以单独保存和检索的临时对象的集合,<span style="color: red;">可以缓存已分配但未使用的对象供以后重用,从而减轻垃圾回收器的压力; Pool 中有对象
go 实现 TCP 长连接上的请求数控制
一、背景 在服务端开启长连接的情况下,四层负载均衡转发请求时,会出现服务端收到的请求qps不均匀的情况,或是服务重启后会长时间无法接受到请求,导致不同服务端机器的负载不一致,qps高的机器过载的问题;
go 源码解析 - sync.Once
个人主页:erlangtui.top 一、简述 保证某段代码在程序执行期间只执行一次; 常用于服务启动时的配置初始化操作; 二、基本原理 通过原子计数和互斥锁的方式,记录函数 f 执行的次数,当计数为
go 源码分析 - sync.Mutex
个人主页:二郎腿 (erlangtui.top) 一、简述 Mutex 互斥锁,同一时刻只能被一个 goroutine 拥有; 是一种相对原始的同步机制,只有基础的同步功能,更高级别的同步最好通过 C
go 源码分析 - sync.RWMutex
个人主页:二郎腿 (erlangtui.top) 一、简述 RWMutex 是一个读写互斥锁,锁可以被多个读 goroutine 同时拥有或被单个写 goroutine 拥有
go 源码解析 - sync.WaitGroup
个人主页:二郎腿 (erlangtui.top) 一、简述 主 goroutine 阻塞等待一组 goroutine 完成后,再进行后续操作; 常用于对多个服务并发请求后,等待返回后的结果在进行后续处
go 的基本命令详解
go 的基本命令有:build, clean, env, fix, fmt, generate, get, install, list, run, test, tool, version, vet
Go 的基本介绍
一、语言特性 1,简洁易读 go语言通过设计简洁、清晰的语法和标准库,使得代码更加易读易写; 避免了一些语言中常见的复杂特性和概念,如继承和多态等,采用接口实现多态性,减少了冗余代码,提高了代码的可读
go 源码分析 - slice
一、创建方式 1,直接声明 2,字面创建 3,make创建 4,new创建 5,截取 二、扩容过程 1,append append函数返回值是一个新的slice,Go编译器不允许调用了 append
go 源码分析 - map
个人主页:二郎腿 (erlangtui.top) 一、简述 map 是一种内置的数据结构,以哈希表的方式存储键值对数据,能够在 O(1) 复杂度内查找、删除、更新数据; map 是非线程安全的,使用时
下一页