理解 Go 中的数学运算符

使用数字并对它们进行数学运算是任何编程语言的常见做法。Go 中的数值数据类型表示多种类型的数值数据,范围从普通数字到更有意义的表示,例如货币、屏幕像素大小、点、地理位置、时间、颜色代码等。因此,为了有效地处理数字,了解数字在 Go 中如何运作的基础知识非常重要。本文展示了如何使用两种最常见的数字数据[……]

继续阅读

理解 Go 中的反射

Go 的反射特性增强了语言的表达能力,并已广泛用于许多 API 的实现。本文提供了关于反射的介绍性思想,并解释了在 Go 编程中如何处理反射。

Go 中的反射概述

我们可以在运行时更新变量并检查它们的值调用方法而不知道它们的类型的机制称为反射。反射暴露了实现的内部结构,使我们能够进行各种[……]

继续阅读

理解 Go 中的 init 函数

在 Go 中有两个为特殊目的而保留的预定义函数。一个是init(),另一个是main()。init()函数通常用于初始化应用程序的特定状态。虽然很有用,但它有时会使代码难以阅读。在这里,我们快速浏览一下init()函数、它的用途以及它背后的概念,以及一些 Golang 编码示例。

在我们开始之[……]

继续阅读

在 Go 中构建内存数据库

在软件工程师职位的设计面试中,您可能会遇到的问题之一是设计内存数据库。这个问题有很多变化,但通常是这样的:

如果您不熟悉此类问题,您可能想知道这是什么类型的问题。很明显,实现一个具有生产价值的内存数据库需要付出很多努力。您需要控制内存的分配和释放方式、解决线程安全问题、实施大量输入验证、使[……]

继续阅读

Golang 中的内存缓存

最终,所有项目最终都需要加快服务响应或进行一些繁重的计算。快速简便的解决方案是使用缓存。通常,有 Redis 或 Memcached,但我们在单实例微服务中并不需要它们。有时在 Go 应用程序中使用简单的内存缓存会更好,今天我想向您展示实现它的主要方法。

简单地图

第一种方式是简单的显式[……]

继续阅读

如何在 Golang 中开发 Facebook Messenger Bot

Facebook 是当今全球最大的社交网络。它每月有超过 29 亿活跃用户。这就是为什么许多公司开始将 Facebook Messenger 用于商业目的的原因。

最近,我们开发了 Facebook Messenger 机器人作为 2FA(双因素身份验证)的另一种方式,它显着降低了 SMS 成[……]

继续阅读

在 Go 中练习函数式编程

在使用新语言时,您总是会尝试找到与您已经知道的语言的相似之处。我在 JavaScript 和 Java 方面经验丰富,可以得出结论,Go 与 JS 更相似。为什么呢?嗯,在我看来,这是因为支持一些功能范式特性。

纯函数

它是函数式编程的基本实体。来自维基:

对于相同的参数,函数返回[……]

继续阅读

Goroutines:如何在 Go 中运行并发代码

Go 编程语言的最大优势之一是其内置的并发支持,基于 Tony Hoare 的“Communicating Sequential Processes”。作为一名具有 JS 和 Java 背景的开发人员,我对在 Go 中运行并发代码的轻松程度感到惊讶。

Go 和其他语言的并发区别

实际上,[……]

继续阅读

如何使用 GoReleaser 自动化 GoLang 构建版本

为了使项目更加用户友好和有吸引力,作者添加了 docker 图像并为许多不同的平台进行了分发构建。项目的每个新版本都需要它,即使是次要版本。因此,有必要编写这个过程的自动化,因为手工编写非常冗长且例行公事,而且很容易出错或忘记某些东西。下面我将告诉您有关GoReleaser的信息,它几乎可以免费地自[……]

继续阅读

在 Go 1.18 中使用泛型检查回文

在阅读了几篇关于 Go 1.18 中泛型的文章和视频之后,我对使用它创建一个可以接受字符串和整数的回文检查函数产生了兴趣。

首先,我创建了一个名为 palindrome 的新项目和一个新包(也称为 palindrome)。然后我创建了一个名为 signedOrString的约束&nb[……]

继续阅读