- 在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号类型和描述1布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。2数字类型整型 int 和浮点型 float32、float6... 在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。Go 语言按类别有以下几种数据类型:序号类型和描述1布尔型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。2数字类型整型 int 和浮点型 float32、float6...
- Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println4. (5. "Hello, World!"6. )行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;... Go 标记Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。如以下 GO 语句由 6 个标记组成:fmt.Println("Hello, World!")6 个标记是(每行一个):1. fmt2. .3. Println4. (5. "Hello, World!"6. )行分隔符在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;...
- 1 简介map 本身是 无序的,也就是说,Go 不保证遍历 map 时的顺序,因此无法直接对 map 的键进行排序并输出。本文通过一些技巧间接实现排序,或者使用其他数据结构来保持排序。 2 如何对 map 的键进行排序并输出首先,我们需要将 map 的键提取到一个切片中,然后对这个切片进行排序。排序后的键可以用来访问 map 中的值。示例:对 map 的键排序并输出假设我们有一个 map ... 1 简介map 本身是 无序的,也就是说,Go 不保证遍历 map 时的顺序,因此无法直接对 map 的键进行排序并输出。本文通过一些技巧间接实现排序,或者使用其他数据结构来保持排序。 2 如何对 map 的键进行排序并输出首先,我们需要将 map 的键提取到一个切片中,然后对这个切片进行排序。排序后的键可以用来访问 map 中的值。示例:对 map 的键排序并输出假设我们有一个 map ...
- 分布式系统听起来很复杂,但用Go来实现其实没那么难。今天我们来搭建一个完整的分布式系统,包含服务注册、服务发现、负载均衡和健康检查等核心功能。这个项目虽然简单,但麻雀虽小五脏俱全,基本涵盖了分布式系统的主要组件。代码都是可以直接运行的,你可以在本地跑起来看看效果。 1 项目整体架构我们要搭建的系统叫 simple_distributed_system,目录结构是这样的:simple_dist... 分布式系统听起来很复杂,但用Go来实现其实没那么难。今天我们来搭建一个完整的分布式系统,包含服务注册、服务发现、负载均衡和健康检查等核心功能。这个项目虽然简单,但麻雀虽小五脏俱全,基本涵盖了分布式系统的主要组件。代码都是可以直接运行的,你可以在本地跑起来看看效果。 1 项目整体架构我们要搭建的系统叫 simple_distributed_system,目录结构是这样的:simple_dist...
- 1 简介本文给出 multiSorter 多字段排序 实现示例,该代码实现了一个可组合多字段排序器,非常类似 SQL ORDER BY: ORDER BY user ASC, lines DESC, ...它允许:动态传入多个比较函数(lessFunc)按优先级链式比较(逐字段比)自定义每个字段升序或降序 2 核心设计思想支持多字段排序(Primary key、Secondary ke... 1 简介本文给出 multiSorter 多字段排序 实现示例,该代码实现了一个可组合多字段排序器,非常类似 SQL ORDER BY: ORDER BY user ASC, lines DESC, ...它允许:动态传入多个比较函数(lessFunc)按优先级链式比较(逐字段比)自定义每个字段升序或降序 2 核心设计思想支持多字段排序(Primary key、Secondary ke...
- 1 简介在 Go 语言中,对 slice 的操作比较灵活。要删除或替换 slice 中的元素,主要有以下几种常见的方法: 2 append 删除 slice 中的元素假设你有一个长度为 10 的 int 类型的 slice,想要删除第 3 个元素(索引为 2),可以通过以下两种常见方法实现。使用 append 删除元素通过 append 函数,你可以将 slice 中的元素重新组合,从而... 1 简介在 Go 语言中,对 slice 的操作比较灵活。要删除或替换 slice 中的元素,主要有以下几种常见的方法: 2 append 删除 slice 中的元素假设你有一个长度为 10 的 int 类型的 slice,想要删除第 3 个元素(索引为 2),可以通过以下两种常见方法实现。使用 append 删除元素通过 append 函数,你可以将 slice 中的元素重新组合,从而...
- 1 简介Go原生函数没有IN函数用于方便快捷地判断某个元素是否存在切片,本文示例 代码尝试实现类似 Python in 操作符的功能,用来判断某个元素是否存在于不同类型的容器中(如 slice, array, map 等)。 2 需要实现的功能首先将In 函数支持 slice / array,还不支持 map、struct slice 等情况。本文详细讲一下改进方案和实现方式Python ... 1 简介Go原生函数没有IN函数用于方便快捷地判断某个元素是否存在切片,本文示例 代码尝试实现类似 Python in 操作符的功能,用来判断某个元素是否存在于不同类型的容器中(如 slice, array, map 等)。 2 需要实现的功能首先将In 函数支持 slice / array,还不支持 map、struct slice 等情况。本文详细讲一下改进方案和实现方式Python ...
- 系统讲解Go语言全栈开发,从Web框架到微服务架构,涵盖云原生部署、Kubernetes编排等企业级技术。适合后端工程师转型和架构师学习分布式系统设计,通过实战项目掌握高并发场景的开发与优化。 系统讲解Go语言全栈开发,从Web框架到微服务架构,涵盖云原生部署、Kubernetes编排等企业级技术。适合后端工程师转型和架构师学习分布式系统设计,通过实战项目掌握高并发场景的开发与优化。
- 1 简介框架定位 / 优势: 强调服务化抽象、可插拔架构、简单易用的开发体验,提供一整套“微服务运行时”组件:默认 RPC、服务发现、配置、事件驱动(pub/sub)等,强调可插拔(pluggable)和快速起步。 2 常用配套Web / RPC 层:go-micro 自带 RPC 抽象并有 HTTP 转接,常见与 gRPC/HTTP 一起使用(源码在 go-micro 组织)。队列 / ... 1 简介框架定位 / 优势: 强调服务化抽象、可插拔架构、简单易用的开发体验,提供一整套“微服务运行时”组件:默认 RPC、服务发现、配置、事件驱动(pub/sub)等,强调可插拔(pluggable)和快速起步。 2 常用配套Web / RPC 层:go-micro 自带 RPC 抽象并有 HTTP 转接,常见与 gRPC/HTTP 一起使用(源码在 go-micro 组织)。队列 / ...
- 1 简介go-kit(微服务 toolkit)框架定位 / 优势:理念上是「构建可维护、可测试、可观察的微服务的工具箱」非常模块化(transport、endpoint、middleware、metrics、tracing、circuit-breaker 等分离),适合复杂企业级分布式系统,需要你自己组合但能得到高度可控和良好架构。 2 常用配套Web / RPC 层:通常与 net/ht... 1 简介go-kit(微服务 toolkit)框架定位 / 优势:理念上是「构建可维护、可测试、可观察的微服务的工具箱」非常模块化(transport、endpoint、middleware、metrics、tracing、circuit-breaker 等分离),适合复杂企业级分布式系统,需要你自己组合但能得到高度可控和良好架构。 2 常用配套Web / RPC 层:通常与 net/ht...
- 1 简介性能和可扩展性在 Go 设计时考虑了性能和可扩展性 。它具有轻量级的 goroutine 调度算法和高度优化的运行时,使其成为构建高性能系统的理想选择。本文从几个方面说明高性能与高扩展性的体现在哪里。 2 轻量级并发模型(Goroutine)go worker(&wg) 启动了一个 goroutine。Goroutine 是 Go 的核心并发单元,由 Go 运行时(runtime)... 1 简介性能和可扩展性在 Go 设计时考虑了性能和可扩展性 。它具有轻量级的 goroutine 调度算法和高度优化的运行时,使其成为构建高性能系统的理想选择。本文从几个方面说明高性能与高扩展性的体现在哪里。 2 轻量级并发模型(Goroutine)go worker(&wg) 启动了一个 goroutine。Goroutine 是 Go 的核心并发单元,由 Go 运行时(runtime)...
- 1 简介依赖管理 的 Go 模块,依赖和版本控制管理Go 的模块依赖管理(Go Modules)和 Python3 的模块依赖管理(site-packages + pip/venv)在理念上都旨在解决依赖管理与版本控制问题,但它们的实现机制与理念存在显著差异。Go 模块提供了一种在 Go 项目 中管理依赖项和版本控制的方法。它们使声明和管理依赖关系变得容易,确保项目可重复且可靠。例如: ... 1 简介依赖管理 的 Go 模块,依赖和版本控制管理Go 的模块依赖管理(Go Modules)和 Python3 的模块依赖管理(site-packages + pip/venv)在理念上都旨在解决依赖管理与版本控制问题,但它们的实现机制与理念存在显著差异。Go 模块提供了一种在 Go 项目 中管理依赖项和版本控制的方法。它们使声明和管理依赖关系变得容易,确保项目可重复且可靠。例如: ...
- 1 简介使用 Go 的内置包进行测试testingGo 有一个内置的包,提供了一种编写单元测试和集成测试的方法。它易于使用,并提供了许多开箱即用的功能,包括测试覆盖率和基准测试。例如:testing import ( "testing" ) func add(x, y int) int { return x + y } func T... 1 简介使用 Go 的内置包进行测试testingGo 有一个内置的包,提供了一种编写单元测试和集成测试的方法。它易于使用,并提供了许多开箱即用的功能,包括测试覆盖率和基准测试。例如:testing import ( "testing" ) func add(x, y int) int { return x + y } func T...
- 1 简介Go语言设计哲学的核心——即组合优于继承、接口的隐式实现,以及 静态类型系统中的多态性(polymorphism)。Go 中的接口与多态性设计在 Go 中,接口(interface) 定义了一组方法签名,但不需要显式声明实现关系。也就是说,一个类型只要实现了接口中的所有方法,它就自动实现了该接口。示例: // 定义一个接口 type Speaker interf... 1 简介Go语言设计哲学的核心——即组合优于继承、接口的隐式实现,以及 静态类型系统中的多态性(polymorphism)。Go 中的接口与多态性设计在 Go 中,接口(interface) 定义了一组方法签名,但不需要显式声明实现关系。也就是说,一个类型只要实现了接口中的所有方法,它就自动实现了该接口。示例: // 定义一个接口 type Speaker interf...
- 1 简介使用多个返回值的错误处理,本文从设计哲学、语言特性 和 工程实践 三个层面来分析 Golang 的多返回值错误处理机制与 Python3 的异常机制的区别与优势。Golang 的多返回值错误处理机制概述在 Go 中,一个函数常常写成如下形式: func ReadConfig(path string) (Config, error) { // ... if er... 1 简介使用多个返回值的错误处理,本文从设计哲学、语言特性 和 工程实践 三个层面来分析 Golang 的多返回值错误处理机制与 Python3 的异常机制的区别与优势。Golang 的多返回值错误处理机制概述在 Go 中,一个函数常常写成如下形式: func ReadConfig(path string) (Config, error) { // ... if er...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签