本文主要介绍了 go 语言中类型的可比较性,即各种类型在面对 == 和 != 操作符的比较规则,只有三种类型(切片、map 和函数)三种类型不可比较,尽管接口类型可以比较,但要警惕如果底层类型不可比较可能会引起程序崩溃的问题。对于类型的可排序性,即类型在面对 <、<=、> 和 >= 时的比较规则,也只有三种类型(整型、浮点型和字符串)可以比较,而且即便误用,编译器也能够帮忙拦截。
range 是 Go 语言用来遍历的一种方式,它可以操作数组、切片、map、channel 等。 在Go中使用range经常会带来一些奇怪的问题,本文从一个Case开始深入了解下 range的特性。这一节介绍的两个关键字 for 和 range 都是我们在学习和使用 Go 语言中无法绕开的,通过分析和研究它们的底层原理,让我们对实现细节有了更清楚的认识,包括 Go 语言遍历数组和切片时会复用变量、哈希表的随机遍历原理以及底层的一些优化,这都能帮助我们更好地理解和使用 Go 语言。
在 Golang 中,errors 包是用于处理错误的标准库, errors 包提供的功能比较简单,使用起来非常方便。接下来就具体讲解一下 errors 包提供的几个函数。例如:errors.Is 用于判断给定的错误是否是目标错误类型或者基于目标错误类型包装过的错误,会递归检查错误链,直到找到目标错误类型或者到达错误链的末尾。如果找到目标错误类型,则返回true,否则返回false。
在并发编程中同步原语也就是我们通常说的锁的主要作用是保证多个线程或者 goroutine在访问同一片内存时不会出现混乱的问题。Go语言的sync包提供了常见的并发编程同步原语,今天文章里让我们回到应用层,聚焦sync包里这些同步原语的应用场景,同时也会介绍sync包中的Pool和Map的应用场景和使用方法。以及一些不常用的库errgroup的使用
在5.x版本之后ElasticSearch新增了索引重建功能,可以直接在ES集群里面对数据进行重建并且支持跨集群间的数据迁移。在保证数据的一致性和可用性情况下,使用一个新的索引替换掉旧的索引。
支付的本质是货币在收付款人之间的转移,那么为什么要转移呢?因为发生了经济活动,在活动中产生了交易,交易的完成依赖支付。本文介绍了支付的184个支付名词,帮你入门支付。
MySQL篇必学必会面试题总结,关系型数据库的一些常见面试问题。事务是什么?数据库事务有哪些特性?如何对慢查询语句进行优化?常用引擎有哪些?MyISAM索引与InnoDB索引的区别?MyISAM的读取性能为什么更高?索引失效的情况介绍一下?建立索引的原则有哪些?
Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配置。本文将带来了解到 Next.js 14 所需的全部知识。
由于主要讲解MySQL面试的核心知识点,因此不会对某些技术细节进行深入讲解,但文中提到的技术点都会附上具体讲解的链接,因而当大家看到自己不理解的面试点时,可直接戳进对应的链接中做深入研究。
兜兜转转,经过《全解MySQL专栏》前面二十多篇的内容讲解后,基本对MySQL单机模式下的各方面进阶知识做了详细阐述,同时在前面的《分库分表概念篇》、《分库分表隐患篇》两章中也首次提到了数据库的一些高可用方案,但前两章大多属于方法论,并未涵盖真正的实操过程。接下来的内容,会以目前这章作为分割点,开启MySQL高可用方案的落地实践分享的新章程!