![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 51
gcglhd
这个作者很懒,什么都没留下…
展开
-
Go之开源工具包那些事
1. 高性能进程内缓存freeCache 深入理解Freecache_czlshadow的博客-CSDN博客_freecacheFreecache源码分析简介freecache项目版本freecache架构设计简介freecache是Golang版的本地缓存库,从github项目介绍看,该框架相比与Golang的Map,具有一下的优势:能存储数亿条记录(entry) 。零GC开销。高并发线程安全访问。纯Golang代码实现。支持记录(entry)过期。接近LRU的替换算法。严格限制内存的使用。提供一个测.原创 2021-11-30 17:29:47 · 362 阅读 · 0 评论 -
Go 初始化那些事(init,sync.Once)
背景: 近期在开发项目的时候,发现有的需求需要进行初始化,但是初始化的时刻不同,简单讲就是文本加载自动初始化,那就是最常见的init方式,同时Go还提供了一个新的方式,那就是sync包提供的方式:sync.Once ,最终的效果都是只执行一次。 方法名 相同点 不同点 init() 最终执行次数都是一次 加载到指定文件的时候会自动的执行该文件的init方法 sync.Once \ 执行该方法的时候才会触发执行一次,其他时刻调用不会执行。同时自...原创 2021-11-26 16:20:43 · 911 阅读 · 0 评论 -
GO之面向对象编程注意事项是否引用类型做参数
背景: 面向对象编程时当前开发的设计思想,虽然Go语言并不是面向对象编程语言,但是可以通过编程设计实现面向对象的编程效果。下面不是讲解如何设计出面向对象编程,而是去说明一下,如何选择使用指针类型还是普通数据类型进行函数实现,了解本质去选择。 1. 采用的是普通数据类型: type User struct { Name string Age int } type A interface { Hello() } // 采用的是普通数据类型 func (n User) Hell...原创 2021-09-18 14:47:12 · 290 阅读 · 0 评论 -
Go之设计模式开发
背景: 设计模式是软件设计的基础,那么在不同的开发语言中会有不同的方式进行设计,下面就是采用Go讲解几个基本的设计模式的设计方案: 一. 单例模式 单例是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点。 // 单例模式 var once sync.Once //一种安全的初始化机制,保证并发的情况下只有一个去执行。 type single struct { // 实体对象结构 } var singleInstance ...原创 2021-09-02 10:07:41 · 178 阅读 · 0 评论 -
Go语言闭包的设计
背景: 之前开发一直没有注意到闭包的开发使用,今天无意间发现闭包的魅力。下面就以一个简单的示例做一个分析。 闭包: 1、函数里面包含的子函数,子函数访问父函数的局部变量,也就是子函数与局部变量形成了一个整体。 2、通过return将子函数暴露在全局作用域,子函数就形成闭包 3、通过闭包,父函数的局部变量没有被销毁,可通过闭包去调用return 之前的逻辑代码只能执行一次,可以理解为初始化1次,同时这个局部变量也不会被全局变量污染。 示例: package main import ...原创 2021-08-25 14:17:28 · 103 阅读 · 0 评论 -
GO之性能调优工具
背景: 最近刚好有需求对interface的变量类型进行类型判断,然后断言获取指定的变量类型值,那么首先就是yao原创 2021-08-06 09:13:18 · 297 阅读 · 0 评论 -
Go项目中调用C库函数
背景: 在很多场景下,在Go的程序中需要调用c函数或者是用c编写的库(底层驱动,算法等,不想用Go语言再去造一遍轮子,复用现有的c库)。我们在使用Golang开发项目或系统的时候难免会遇到Go和C语言混合编程,这时很多人都会选择使用cgo。然后近期有项目需要在Go项目中调用设备模块同事写的C库函数,所以经过查询资料进行一下总结。 1. 环境的依赖安装: https://blog.csdn.net/u012278016/article/details/101101486 2. 实例...原创 2021-07-01 10:27:03 · 1297 阅读 · 0 评论