专题:golang
共60篇相关文章

如何将下划线字段在Golang结构体中的应用扩展为?
最近公司里的新人问了我一个问题:这段代码是啥意思。这个问题很普通也很常见,我还是个新人的时候也经常问,当然,现在我不是新人了但我也经常发出类似的提问。 代码是长这样的: type BussinessObject struct { _ [0]...

Go 1.26的new函数新特性,如何为一个?
目前golang 1.26的各种新特性还在开发中,不过其中一个在开发完成之前就已经被官方拿到台面上进行宣传了——内置函数new功能扩展。 每个新特性其实都有它的背景故事,没有需求的驱动也就不会有新特性的诞生。所以在介绍这个新特性之前我们先来...

Go语言中如何将unique包与字符串内化成?
最近在做老系统优化,正好遇到了需要使用字符串内部化的场景,所以今天就来说说字符串内部化这种优化技巧。 什么是字符串内部化 熟悉Java或者python的开发者应该对“内部化”这种技术不陌生。内部化指的是对于内容完全相同的字符串变量,内存中只...

POSIX系统上read和write系统调用具体如何实现,其行为细节是什么?
关于UNIX和Linux的宣传语中,一切皆文件应该是最广为人知的一句。 不管是普通文件,还是硬件设备、管道、网络套接字,在Linux甚至还有信号和定时器都共享一套相似的api,大家可以用类似的代码完成各种不同的任务,大大简化了代码复杂度和学...

如何编写更安全的Golang代码,利用泛型实现?
从Go 1.18正式引入泛型,再到Go 1.21大量泛型函数类型进入标准库开始已经过去了三年。尽管有着不支持类型特化、不支持泛型方法、实现方式有少量运行时开销、使用指针类型时不够直观等限制,泛型编程还是在golang社区和各种项目中遍地开...

Linux binfmt_misc机制如何实现跨架构的二进制程序执行?
在类UNIX系统上,可执行文件和shell脚本一般都是不带后缀名的,操作系统内置的程序加载器会自动检测文件的权限和内容是否是一个可执行的程序。这么做的好处是可以在输入命令的时候少打很多字。坏处自然是不对文件做彻底的检查就无法确定其是否是可执...

C20新特性如何简化线程超时取消为?
C++20中增加了很多重量级新特性,它不仅带来了ranges、concept和协程,也为多线程编程带来了jthread和stop_source这些强力辅助。利用这些新特性,我们可以更高效地编写并发程序。...

如何使用docker-compose快速搭建单节点Kafka 4.0测试环境?
高版本kafka已经不再需要ZooKeeper当保姆才能启动了,现在部署一个单机单节点测试环境比原来方便不少。 不过最常用的bitnamikafka不再提供免费镜像,导致我们只能用apachekafka,新镜像的配置会稍微麻烦一些,所以...

人间算法题:这究竟是不是一个环形的谜题?
很多人都说人生就是一个循环,每天重复重复。 而所谓环,对于写代码的小伙伴来说是有特殊定义的。我的理解就是节点循环,就成了环。 刚好刷到一个掘金好友分享的腾讯一面算法题:判断一个单链表是不是一个环。 其实有很多办法来实现,但是我更喜欢用快慢指...

秒杀removeDuplicates函数,如何为?
周末食欲不振,拿一道简单难度的题找找感觉,题目如下: Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place su...

如何通过移位操作实现两数之商的求法?
五一漫长的假期,外面的世界是人山人海,反而在家刷题算得上一个好的休闲方式。刚好我开始写这道题: Given two integers `dividend` and&#160...

MCP官方Go SDK尝鲜,有哪些技巧分享?
前言 此前在 MCP 官网就注意到官方提供了 Go SDK,近期由于在 Python 环境下开发 MCP Server 有点"审美疲劳",因此决定使用 Go 语言尝尝鲜。 从个人实际体验来...

如何全面掌握Go语言中使用slog库进行日志记录的入门知识?
简介 slog 是 Go 1.21 引入的官方结构化日志库(Structured Logging)。它结束了 Go 标准库只有简单 log 包的历史,让我们可以直接输出 JSON 或 Key-Value 格式的日志,非常适合对接 ELK、G...

如何将Gin框架中的规范响应格式设计与实现?
在现代Web应用开发中,统一和规范化的API响应格式对于前后端协作至关重要。今天,我们来探讨如何在Gin框架中设计一套既实用又易于维护的响应格式规范。...

如何入门使用Go语言中的Zerolog日志库?
简介 Zerolog 是一个可以结构化输出 JSON 格式的 Go 日志库,其特点就是高性能,名字中的 zero 代表零分配设计,速度非常快。 什么是零分配设计? 在 Go 语言中,内存分配会带来一定的性能开销,频繁的内存分配和垃圾回收(G...
