golang sync.Map实现原理

sync.Map 的实现原理可概括为: 通过 read 和 dirty 两个字段将读写分离,读的数据存在只读字段 read 上,将最新写入的数据则存在 dirty 字段上 读取时会 […]...

golang channel操作情况

channel是golang一种重要的数据结构,使用channel的方式不正确可能会发生panic。发生 panic 的情况有三种:向一个关闭的 channel 进行写操作;关闭一 […]...

golang map扩容

golang map 操作,是map 实现中较复杂的逻辑。因为当赋值时,为了减少hash 冲突链的长度过长问题,会做map 的扩容以及数据的迁移。 map的数据结构 go语言中的m […]...

golang中切边和数组

golang中数组array是具有相同唯一类型 的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型,切片slice其实是数组array的 […]...

golang 变长参数

在golang开发中,按照参数的传递方式有两种值传递和引用传递,按照参数的个数有定长参数和变长参数,掌握参数的不同类型在开发过程中有很大的作用。 参数 按值传递 Go 语言默认使用 […]...

golang 快速排序

快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较.在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见. 事实上,快速排 […]...

golang sort底层排序

golang里面有一个sort的包,用来给定的数据序列进行排序,那你知道其底层使用是哪种排序算法吗?插入排序,选择排序,快速排序,还是shell排序? 在sort里面最后排序都是使 […]...

golang逗号模式

在golang中有一种逗号模式“,ok”,第一个参数是一个值或者nil,第二个参数是true/false或者一个错误error。在一个需要赋值的if条件语句中,使用这种模式去检测第 […]...

golang内存逃逸

栈是线程级别的,大小在创建的时候已经确定,当变量太大的时候,会"逃逸"到堆上,这种现象称为内存逃逸。 内存逃逸的场景 指针逃逸 Go可以返回局部变量指针,这种情 […]...

如何在 Go 中处理操作系统信号

Go 编程语言不是为像 C 那样的系统级编程而构建的,但是有一些功能可以帮助开发人员在低级别与底层操作系统进行交互,例如使用信号。os/signals包可帮助开发人员使用此功能。事 […]...

Golang 字符串

在 Go 语言中,字符串与Java等其他语言不同。它是一系列可变宽度字符,其中每个字符都使用UTF-8 编码)由一个或多个字节表示。换句话说,字符串是任意字节(包括具有零值的字节) […]...

Golang interface底层数据结构

golang 中interface是必须要掌握的内容的,其底层是eface和iface,了解这两种数据结构才能更好的了解和使用interface,基于go v1.13,struct […]...

golang切片和数组区别

Go 中基本的集合数据结构是通过数组和切片来表示的。尽管它们可能看起来相似,但它们在实现中具有不同的内涵。简而言之,Go 数组不灵活,并不意味着与动态内存分配相关联。另一方面,切片 […]...

Mac、Linux、Windows 下Go交叉编译

Go编程语言附带了一个丰富的工具链,使得获取包和构建可执行文件非常容易。Go最强大的特性之一是能够为任何Go支持的外国平台交叉构建可执行文件。这使得测试和包分发变得更加容易,因为您 […]...

Golang Arrays和Slices的区别

这篇文章将简要描述Go中数组和片之间的区别。 数组是相同类型的固定长度item序列。Go中的数组可以使用以下语法创建: [N]Type [N]Type{value1, value2 […]...

golang迭代map几种方式

在golang使用range操作符来迭代map,通常有以下几种使用的场景:获取key和value,只获取value,只获取key,我们来举例说明下。 首选构造一个map sampl […]...

Golang struct使用内嵌实现继承

Go通过嵌入结构或使用接口支持继承。有不同的方法可以做到这一点,而且每个方法都有一些限制。不同的方式是: 通过使用嵌入式结构-父结构被嵌入到子结构中。这种方法的限制是不能使用子类型 […]...

Golang中获取当天0时的时间戳

在golang开发中会遇到要获取当天0时的时间戳的场景,网上很多资料说明的方法都是不正确的,存在着误差,建议在得到指定的时间戳之后需要,反解析处时间格式来检查一下,之所有会有差别主 […]...

golang结构体

Golang中的一个或多个结构是用户定义的类型,允许将可能不同类型的项目分组/组合为单个类型。具有一组属性/字段的任何现实世界实体都可以表示为结构。通常将此概念与面向对象编程中的类 […]...

学习golang的7大理由

Golang是一种开源的,轻量级的程序编程语言,由Robert Griesemer,Rob Pike和Ken Thompson于2007年在Google开发,但于2009年作为一种 […]...
ajax-loader