Golang
文章平均质量分 85
Go语言学习,代码与笔记
沉淅尘
一个想做Golang开发的运维工程师,初入社会的菜鸟。
博客都是一边工作一边记录以前的知识点,比较杂乱,专栏的内容发布顺序也比较乱。
读者挑着适合自己的来看就好
展开
-
万字总结:从零开始学 Go
万字总结:从零开始学 GoGo 语言基础教程原创 2022-04-26 16:29:49 · 770 阅读 · 0 评论 -
Golang 解析 json 文件的两种方法
golang 解析 json 文件原创 2023-01-31 16:05:58 · 654 阅读 · 0 评论 -
Go 语言的 Context 详解
go context包详解原创 2022-07-04 21:02:59 · 1902 阅读 · 0 评论 -
Go 语言中 switch 类型断言用法
Go 语言中 switch 类型断言用使用类型断言的建议是复用结果,而不是直接使用原创 2022-05-09 09:44:54 · 2161 阅读 · 0 评论 -
Go 操作 mongoDB
Go 语言操作 mongoDB,并记录遇到的错误与解决方案原创 2022-05-06 19:15:31 · 1489 阅读 · 2 评论 -
Go 语言中的垃圾回收机制 GC 详解
Go 语言中的垃圾回收机制 GC 详解原创 2022-05-05 13:42:18 · 3110 阅读 · 1 评论 -
深入理解 Go 调度模型 GPM
深入理解 Go 调度模型 GPM,Go 语言中最大的一个特性就是天生支持并发,而这一功能体现的就是其调度模型 GPM原创 2022-04-28 20:56:42 · 3237 阅读 · 1 评论 -
Go 1.18 泛型详解: 从零读懂泛型
目录Go 1.18 泛型详解: 从零读懂泛型什么是泛型?函数的形参和实参为什么是泛型?Go 泛型的示例泛型函数泛型类型声明类型限制 (type constraint)参考Go 1.18 泛型详解: 从零读懂泛型Go 1.18 版本新增了一个功能:支持泛型编程。如果是其他语言转 Go 语言的开发者,那么能够理解什么是泛型,以及如何使用?但只是 Go 语言的初学者,并没有接触过泛型编程的人来说,这个功能可能一头雾水。本文希望能让为接触泛型编程的人也能很好的理解和使用 Go 的泛型A genera原创 2022-04-24 17:17:23 · 2764 阅读 · 0 评论 -
Go 语言中的 logger 和 zap 日志库
目录Go 语言中的 logger 和 zap 日志库Go LoggerZap LoggerLoggerSugared Logger定制 Logger 记录到文件中参考Go 语言中的 logger 和 zap 日志库在软件开发过程中,需要进行关键日志记录,便于后期的审计和排错。一个好的日志记录器应该具备以下功能:日志写入到文件而不是控制台输出日志切割-按文件大小、时间或间隔等切割日志文件支持不同的日志级别,如:INFO,DEBUG,ERROR 等能打印基本信息,如调用文件/函数名和行号,日志时原创 2022-04-22 21:03:56 · 1581 阅读 · 0 评论 -
Golang 中 select 语句死锁问题
目录Golang 中 select 语句死锁问题Select 语句执行步骤示例参考Golang 中 select 语句死锁问题一切问题的答案都在 spec[1] 里Select 语句执行步骤Select_statementsExecution of a “select” statement proceeds in several steps:For all the cases in the statement, the channel operands of receive operatio原创 2022-04-21 11:41:06 · 613 阅读 · 0 评论 -
MySQL 和 Redis 事务的区别
目录MySQL 和 Redis 事务的区别事务的四大特性命令行执行事务的命令实现原理Go 语言开启事务代码MySQL 和 Redis 事务的区别redis 事务不支持原子性和持久性,并且 mysql 事务与 redis 事务的实现原理不同事务的四大特性ACID,事务的四大特性缩写:原子性 (Atomicity)、一致性 (Consistency)、隔离性 (Isolaction)、持久性 (Durability)原子性一个事务内所有操作就是最小操作单元,要么全部成功,要么全部失败一致性应用系原创 2022-04-19 14:16:35 · 2808 阅读 · 0 评论 -
Go 并发 | 数据竞争及竞争条件
目录Go 并发 | 数据竞争及竞争条件数据竞争 (data race)避免数据竞争的发生竞争条件 (race condition)总结参考Go 并发 | 数据竞争及竞争条件Go 并发中有两个重要的概念:数据竞争 (data race) 和竞争条件 (race condition)在并发程序中,竞争问题可能是程序面临的最难也是最不容易发现的错误之一数据竞争 (data race)当两个或多个协程同时访问同一个内存地址,并且至少有一个是在写时,就会发生数据竞争,看一下以下例子i := 0go fu原创 2022-04-19 10:05:57 · 1357 阅读 · 0 评论 -
Go 语言使用 Redis
Go 语言学习之操作 Redis 的常用函数原创 2022-04-18 21:03:09 · 1400 阅读 · 0 评论 -
Golang gRPC: 基于CA证书的双向TLS认证
Golang gRPC: 基于CA证书的双向TLS认证原创 2022-04-18 15:28:42 · 1592 阅读 · 0 评论 -
Golang 学习之 grpc 的使用
Golang gRPC的学习,简单的介绍了一下 Protobuf 和 gRPC 定义,同时解析了 grpc-go 的 helloworld 案例笔者想转 Go 开发原创 2022-04-12 09:20:53 · 1943 阅读 · 4 评论 -
sync.Map详解
导航Golang sync.Map 详解简单的介绍一下 Golang MapMap 使用sync.Mapsync.Map 是什么sync.Map 使用sync.Map 剖析sync.map 整体结构参考参考Golang sync.Map 详解原生的 Go Map 在并发读写场景下经常会遇到 panic 的情况。造成的原因是 map 是非线性安全的,并发读写过程中 map 的数据会被写乱。而一般情况下,解决并发读写 map 的思路是加锁,或者把一个 map 切分成若干个小 map,对 key 进行哈希。原创 2022-04-09 15:06:09 · 12178 阅读 · 4 评论 -
Go语言中RPC使用步骤
Go语言学习之RPC使用原创 2022-04-09 11:00:18 · 3858 阅读 · 0 评论 -
Go语言http/template的嵌套和继承
Go语言http/template的嵌套和继承html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的HTML内容。它提供了和text/template包相同的接口,Go语言中输出HTML的场景都应使用html/template这个包。template嵌套可以在template中嵌套其他的template。这个template可以是单独的文件,也可以是通过define定义的template。举个例子: t.tmpl文件内容如下:<!DOCTYPE html>&原创 2021-11-23 11:07:14 · 1939 阅读 · 0 评论 -
Go反射—Go语言圣经学习笔记
Go反射—Go语言圣经Go语言提供了一种反射机制,能够在运行时更新变量和检查它们的值、调用它们的方法和它们支持的内在操作,而不需要在编译时就知道这些变量的具体类型。反射也可以让我们将类型本身作为第一类的值类型处理。在 go 语言中,实现反射能力的是 reflect包,能够让程序操作不同类型的对象。其中,在反射包中有两个非常重要的 类型和 函数,两个函数分别是:reflect.TypeOf - 能获取对象的类型的信息reflect.ValueOf - 能获取对象的数据为何需要反射有时候我们需要原创 2021-11-09 10:31:47 · 128 阅读 · 0 评论 -
Go反射法则
Go语言学习——Go反射反射是 Go 语言比较重要的一个特性之一,虽然在大多数的应用和服务中并不常见,但是很多框架都依赖 Go 语言的反射机制实现一些动态的功能。作为一门静态语言,Golang 在设计上都非常简洁,所以在语法上其实并没有较强的表达能力,但是 Go 语言为我们提供的 reflect 包提供的动态特性却能够弥补它在语法上的一些劣势。reflect 实现了运行时的反射能力,能够让 Golang 的程序操作不同类型的对象,我们可以使用包中的函数 TypeOf 从静态类型 interface{}转载 2021-11-09 10:30:58 · 292 阅读 · 0 评论 -
从MySQL数据库迁移到AWS DynamoDB
GO语言——实现从MySQL数据库迁移到Amazon DynamoDB一、前言博主在学习Go语言,碰巧Leader要求研究一下能不能用脚本方式实现MySQL数据库到DynamoDB的迁移这篇博文是博主使用Go语言实现的一种简单迁移,因为初学Go语言,代码不是很优美,也没有算法优化。功能上, 只是简单的把数据一比一的迁移到DynamoDB。并且原MySQL数据库类型,在DynamoDB中都为String类型。后续有时间会继续优化该程序,也欢迎Go语言的大佬们提出宝贵的修改和优化方案。1.1 迁移背原创 2021-11-08 15:36:25 · 882 阅读 · 0 评论