技术圈开发者交流群:

认识 Go 语言中的 clear 函数

有一天,突然在项目中看到有个clear的函数,还以为是本地定义的函数,但在本地却没有找到相关定义。鼠标放上那么一点,才发现是Go语言中内置的函数,恕我孤陋寡闻了。

于是,就在网上各种搜索准备一探究竟,才知道clear函数是Go1.21版本中引入的内置函数,一起被引入的还有maxmin函数。

clear主要用于清理mapslice的,在此之前一直没有快速清理mapslice的办法,例如清空map中的元素往往需要通过for遍历并通过delete去删除元素。

GoLang 05月01日 744

Golang 中 new 与 make 的区别及适用场景

越来越多的开发者开始使用Go语言开发,这其中不乏有PHPPythonJava的,还有CC++Go的,技术功底可谓是鱼龙混杂、良莠不齐。无论是从小白入门还是直接上手做项目,如果要真正掌握一门编程语言,基本功早晚都要练的。

言归正传,在Go语言中有两个用来内存分配的内置函数:newmake。经历了很多项目,发现make的使用频率要远高于new,实际开发中make几乎是无可代替,之所以new的使用频率没那么高,是因为它有几种可以代替的编写方式。虽然都用于内存分配,但它们还是有一些区别,所以应用场景也各不相同。

new就是纯用来内存分配的,它返回的是被分配类型的指针,并初始化为该类型的零值

GoLang 04月30日 1098

使用 Spring AI 在 Spring Boot 中构建生成式 AI 应用

苟日新,日日新,又日新。

生活从不眷顾因循守旧、满足现状者,从不等待不思进取、坐享其成者,而是将更多的机遇留给善于和勇于创新的人们。

在人工智能飞速发展的今天,无论是 AI 相关的技术,还是 AI 相关的产品,都是层出不穷、日新月异。

Java 03月03日 1614

Ollama 让开源大语言模型触手可及

前有 ChatGPT 的横空出世,现有 DeepSeek 的后生可畏。

在人工智能(AI)飞速发展的今天,大语言模型(LLMs)百家争鸣、群英荟萃,AI已经成为人们茶余饭后必备的话题,更是人们工作、学习中必备的工具。

大语言模型(LLM)是一种利用大量数据训练的深度学习模型,旨在理解和生成人类语言。

PHP 02月24日 9026

Java 和 Go 中接口实现的区别

在面向对象编程中,接口是一个重要概念,它是一种契约,它定义了对象应该具备的方法。一个接口可以有多重实现,它的所有实现都必须满足接口所有约定的方法。并不是所有编程语言都有接口,例如在CPythonRuby中是没有内置的接口机制,但在大多数编程语言中都有接口的概念,一般用interface来标记。

JavaGo都是有内置的接口的机制,但在接口实现上却不尽相同。这些区别主要是接口定义、接口实现、约束机制和应用场景等方面,下面就这些不同进行逐一比较。

两者在接口定义上区别不大,都是通过interface实现的。

GoLang 02月04日 2110

如何在 Go 语言中接收和处理系统信号?

这里我们探讨的信号不是手机信号,也不是Wifi、蓝牙等信号。信号是 Linux、Unix以及其他 POSIX 兼容的操作系统中进程间通讯的一种机制,用于告知进程一个事件已经发生。

更准确的来说,这里所说的信号是在 Linux 系统中通过kill及其相关命令向指定进程发送的控制信号。在 Go 应用开发中,正确处理这些信号非常有必要。

在 Linux 操作系统中系统信号很多类型,这里简要列一些常用的系统信号:

GoLang 01月19日 1092

Go 并发编程中的非阻塞锁:TryLock()

在使用 Golang 做并发编程的过程中,是开发中必不可少的工具之一,它可以避免多协程对共享资源的并发读写,通过加锁来解决对共享资源的并发控制。

在 Go 语言中提供了互斥锁sync.Mutex{}和读写锁sync.RWMutex{}。他们都实现了sync.Locker接口:

// A Locker represents an object that can be locked and unlocked.
type Locker interface {
    Lock()
    Unlock()
}
GoLang 2024年12月26日 6736

Go 多模块工作区模式的最佳实践

在使用 Golang 做编程的学习和工作中,经常会将一个项目拆分成多个模块,模块之间保持着一定层级的依赖关系。往往修改完上游模块后,必须发布以后,下游模块更新后才能使用修改后的上游模块,如果在下游模块使用时发现问题需要再次修改上游模块,然后再发布,下游模块再更新,如此往复,费时费力,大大降低开发和调试效率。

工作区(workspaces) 模式是 Go1.18 中引入的新功能,让多个模块并行开发和调试。无需在 go.mod 中使用 replace 来本地使用开发上游模块。

在没有工作区之前,假设有两个模块mod1mod2mod1依赖mod2,如果mod2中做了修改,mod1要想使用mod2修改后的功能,有两种方式:

GoLang 2024年11月24日 2172

Golang 开发游戏服务端的框架推荐

游戏的种类也很多,各种3A大作、手机游戏、小游戏等。就游戏服务端而言,由于游戏本身差异,很难有一个大而全的游戏服务端框架,为满足日益变化的业务需求,很多企业都是自主开发定制自己的框架,或者从很小的一个http+rpc基础开始,不断扩展来满足的各自的业务需求。

非要说推荐几个Golang的游戏服务端框架,也不是没有,这里更加Gibhub的 star 数来推荐几个还不错的框架。

下面这些都是有一定 star 并且还在活跃的项目:

GoLang 2024年10月21日 1370

在 Go 语言中如何进行 AES-ECB-256 加解密

AES(高级加密标准),是一种对称加密算法,由美国国家标准与技术研究院(NIST)于2001年发布,用于取代早期的DES加密算法,支持128位、192位和256位密钥长度,广泛应用于数据安全领域。

相比其他的对称加密如DES,由于DES密钥长度只有56位如今的算力甚至可以在5分钟内破解,而AES最高级别达到了256位密钥长度,如果采用穷举法,目前来看AES是一种”无法“被破解的加密存在。

不过在 Go 中通常需要使用crypto/aescrypto/cipher包实现AES加密解密。

GoLang 2024年09月20日 2121

排行

解决方案

网站建设

专业企业官网建设,塑造企业形象,传递企业价值

系统开发

系统软件开发,用心思考,用心设计,用心体验

技术支撑

打破技术瓶颈,让不堪重负的项目起死回生

业务中台

构建全渠道一体化运营能力,实现全链路数字化

文案策划

文案撰写、营销策划,专注品牌全案

新媒体运营

一站式解决企业互联网营销痛点和难题

以技术的力量,改变互联网

联系我们
鄂ICP备19028750号-1 @copyright 2025 tech1024.com