Golang

Golang 在linux升级版本

在vs code中使用go 1.15模块智能加载显示代码时,存在问题,可能是兼容性或其他问题。通过升级golang到1.16以上,可以实现VS code自动加载的正常使用。 1. yum 安装的版本比较低,卸载掉

2. 下载,安装 https://golang.o… 阅读更多 »Golang 在linux升级版本

Golang类继承

1. 继承和组合的区别 继承 如果一个struct嵌套了另一个匿名结构体,那么这个结构可以直接访问匿名结构体的方法,从而实现继承 组合 如果一个struct嵌套了另一个【有名】的结构体,那么这个模式叫做组合 多重继承 如果一个struct嵌套了多个匿名结构体,那么这个结构可以直接访问多个匿名结构体的方法,从而实现多重继承 2. … 阅读更多 »Golang类继承

Golang sync中map和once

1. sync.Once介绍 Go语言中的sync包中提供了一个针对只执行一次场景的解决方案–sync.Once。 1.1. 函数格式 sync.Once只有一个Do方法,其格式如下:

1.2. 示例及解释 这里通过定义变量var once sync.Once让其… 阅读更多 »Golang sync中map和once

Golang正则库使用

1. Golang基础正则库 Go语言中使用正则校验需要用到 regexp 包 1.1. 使用MatchString函数 基础函数

用例

1.2. 使用Compile函数或MustCompile函数… 阅读更多 »Golang正则库使用

Golang test模块benchmark性能测试(转载)

1. 概述 基准测试(benchmark)是 go testing 库提供的,用来度量程序性能,算法优劣的利器。 在日常生活中,我们使用速度 m/s(单位时间内物体移动的距离)大小来衡量一辆跑车的性能,同理,我们可以使用”单位时间内程序运行的次数“来衡量程序的性能。 注意:在进行基准测试时,硬件资源直接影响测试结果,为了保证测试… 阅读更多 »Golang test模块benchmark性能测试(转载)

Golang sync_atomic元子操作

1. atomic介绍 sync/atomic包提供了原子操作的能力,直接有底层CPU硬件支持,因而一般要比基于操作系统API的锁方式效率高些;这些功能需要非常小心才能正确使用。 除特殊的底层应用程序外,同步更适合使用channel或sync包的功能。 通过消息共享内存; 不要通过共享内存进行通信。 原子操作是在执行中不能被中断… 阅读更多 »Golang sync_atomic元子操作

Golang test模块使用

go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分。 在*_test.go文件中,有三种类型的函数:功能测试函数、基准性能测试(benchmark)函数、示例函数。 1. test文件和函… 阅读更多 »Golang test模块使用