- 1 简介Go语言中的switch语句是一个强大的工具,可以比一系列if-else语句更高效地处理多个条件。它允许您将一个变量与多个值进行比较,并根据匹配执行不同的代码块。switch 语句用于基于不同条件执行不同动作。每个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。value/type switch在 Go 里,switch 有两种常见用法: 值匹配 switch 类型匹配... 1 简介Go语言中的switch语句是一个强大的工具,可以比一系列if-else语句更高效地处理多个条件。它允许您将一个变量与多个值进行比较,并根据匹配执行不同的代码块。switch 语句用于基于不同条件执行不同动作。每个 case 分支都是唯一的,从上至下逐一测试,直到匹配为止。value/type switch在 Go 里,switch 有两种常见用法: 值匹配 switch 类型匹配...
- 1 简介日常git仓库管理最常用指令是哪些? 你一定在「提交 (commit)、拉取 (pull)、分支 (branch)、合并 (merge)」这几个基本操作上频率最高,但 Git 本身其实是一个非常强大的版本控制工具。git有很多“隐藏技能”,能在团队协作、调试排错、历史管理方面大幅提高效率。本文分几类梳理如下 2. 历史与调试类git bisect —— 二分查找 Bug用来快速定位... 1 简介日常git仓库管理最常用指令是哪些? 你一定在「提交 (commit)、拉取 (pull)、分支 (branch)、合并 (merge)」这几个基本操作上频率最高,但 Git 本身其实是一个非常强大的版本控制工具。git有很多“隐藏技能”,能在团队协作、调试排错、历史管理方面大幅提高效率。本文分几类梳理如下 2. 历史与调试类git bisect —— 二分查找 Bug用来快速定位...
- 1 简介SQL(结构化查询语言)是 用于管理和作关系数据库的标准语言,支持查询、更新和删除数据等作。即使相同的SQL标准在不同 厂商实现后仍有不同之处。T-SQL(Transact-SQL)是 Microsoft 开发的 SQL 扩展,专门为 SQL Server 添加了高级功能和过程功能。理解TSQL 与 开源 mysql 的语法异同点有助于深入了解该查询语言标准。理解 SQL Ser... 1 简介SQL(结构化查询语言)是 用于管理和作关系数据库的标准语言,支持查询、更新和删除数据等作。即使相同的SQL标准在不同 厂商实现后仍有不同之处。T-SQL(Transact-SQL)是 Microsoft 开发的 SQL 扩展,专门为 SQL Server 添加了高级功能和过程功能。理解TSQL 与 开源 mysql 的语法异同点有助于深入了解该查询语言标准。理解 SQL Ser...
- 1 简介以下SQL 代码实际上更接近 SQL Server (T-SQL) 的语法 例如 inserted 伪表、@DepID 变量声明等 。有student 和 deprtment表,在学生表插入一条记录,则相应系表中,系人数加1:设置 触发器create trigger trglnsertStudent on student for insert as declare @DepID i... 1 简介以下SQL 代码实际上更接近 SQL Server (T-SQL) 的语法 例如 inserted 伪表、@DepID 变量声明等 。有student 和 deprtment表,在学生表插入一条记录,则相应系表中,系人数加1:设置 触发器create trigger trglnsertStudent on student for insert as declare @DepID i...
- 1 简介日常工作单人在「提交 (commit)、拉取 (pull)、分支 (branch)、合并 (merge)」足够了,这几个基本操作上Git 本身其实是一个非常强大的版本控制工具。它有很多“隐藏技能”,能在团队协作、调试排错、历史管理方面大幅提高效率。 2 分类: 历史与调试类git bisect —— 二分查找 Bug用来快速定位「哪次提交引入了 Bug」。使用方法: git bi... 1 简介日常工作单人在「提交 (commit)、拉取 (pull)、分支 (branch)、合并 (merge)」足够了,这几个基本操作上Git 本身其实是一个非常强大的版本控制工具。它有很多“隐藏技能”,能在团队协作、调试排错、历史管理方面大幅提高效率。 2 分类: 历史与调试类git bisect —— 二分查找 Bug用来快速定位「哪次提交引入了 Bug」。使用方法: git bi...
- 1 简介编程免不得要处理各种异常,比如系统的,语言层面的,数据库的,业务逻辑的异常。本文从 语言设计哲学 和 SQL错误处理 两个方面来对比分析。 2、Golang 与 Python 在错误处理上的设计理念Go 的错误处理哲学显式 (Explicit) 优于隐式 (Implicit)Go 选择了非常“啰嗦”的 if err != nil 风格,这是出于语言设计哲学:程序员必须正视每一步可能... 1 简介编程免不得要处理各种异常,比如系统的,语言层面的,数据库的,业务逻辑的异常。本文从 语言设计哲学 和 SQL错误处理 两个方面来对比分析。 2、Golang 与 Python 在错误处理上的设计理念Go 的错误处理哲学显式 (Explicit) 优于隐式 (Implicit)Go 选择了非常“啰嗦”的 if err != nil 风格,这是出于语言设计哲学:程序员必须正视每一步可能...
- 一、WebSocket与Go语言的结合在实时通信需求日益增长的今天,传统的HTTP请求-响应模式已无法满足现代应用对实时性的要求。WebSocket协议作为一种全双工通信协议,允许客户端和服务器之间进行持续的双向通信,成为构建实时应用的首选技术。而Go语言凭借其出色的并发模型(goroutine和channel)和高性能网络库,成为实现WebSocket服务的理想选择。本文将基于groil... 一、WebSocket与Go语言的结合在实时通信需求日益增长的今天,传统的HTTP请求-响应模式已无法满足现代应用对实时性的要求。WebSocket协议作为一种全双工通信协议,允许客户端和服务器之间进行持续的双向通信,成为构建实时应用的首选技术。而Go语言凭借其出色的并发模型(goroutine和channel)和高性能网络库,成为实现WebSocket服务的理想选择。本文将基于groil...
- 1 简介FFmpeg是一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频,是一个功能强大但不可见的开源媒体引擎,可以处理 Linux 及其他版本上的大多数视频任务——本周末,开发人员推出了一项重大更新。亮点是 FFmpeg 8.0 添加了基于 Vulkan 计算的编解码器。这些通过利用“适用于 Vulkan 1.3 的任何实现”的计算着色器,为视频解码和编码提供了基于硬件的加速器... 1 简介FFmpeg是一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频,是一个功能强大但不可见的开源媒体引擎,可以处理 Linux 及其他版本上的大多数视频任务——本周末,开发人员推出了一项重大更新。亮点是 FFmpeg 8.0 添加了基于 Vulkan 计算的编解码器。这些通过利用“适用于 Vulkan 1.3 的任何实现”的计算着色器,为视频解码和编码提供了基于硬件的加速器...
- 1 简介如何运用运用示例,如何“使用”,Go:不能重载,只能“用现成规则”或“用方法/函数替代”可以定义具名类型并沿用其底层类型的运算语义,但不能改变运算符的含义: type MyInt int func f(a, b MyInt) MyInt { return a + b // 可以:语义与 int 完全一致 } // MyInt + int 不行:需要显式类型转换自定... 1 简介如何运用运用示例,如何“使用”,Go:不能重载,只能“用现成规则”或“用方法/函数替代”可以定义具名类型并沿用其底层类型的运算语义,但不能改变运算符的含义: type MyInt int func f(a, b MyInt) MyInt { return a + b // 可以:语义与 int 完全一致 } // MyInt + int 不行:需要显式类型转换自定...
- 1 简介本文深入了解go语言和python在异或位运算的底层实现与算法差异。整数模型(根本差异)Go:有明确固定宽度的原生整型(int8/16/32/64/uint*,int 随平台)。有符号整数用 二补码。按位运算在这个固定位宽上进行(高位被截断或按类型规则保留)。Python:int 是 任意精度大整数(bigint),没有固定位宽。按位运算按数学语义(对无限扩展的二补码视角)定义,返... 1 简介本文深入了解go语言和python在异或位运算的底层实现与算法差异。整数模型(根本差异)Go:有明确固定宽度的原生整型(int8/16/32/64/uint*,int 随平台)。有符号整数用 二补码。按位运算在这个固定位宽上进行(高位被截断或按类型规则保留)。Python:int 是 任意精度大整数(bigint),没有固定位宽。按位运算按数学语义(对无限扩展的二补码视角)定义,返...
- 1 性能简介性能与复杂度(实际运行时考虑),构建树(全量计算):内存:需要把 N 个文件项复制到局部 map(O(N))。时间:对每个目录需要对其条目进行排序。若所有文件都在同一目录(最坏),则排序成本 O(N log N)。总体上常见是 O(sum_k k log k) (k 为各目录条目数)。增量更新优化:可以只重算受影响的目录及其祖先。例如 Put(path) 只需重算其父目录,然后... 1 性能简介性能与复杂度(实际运行时考虑),构建树(全量计算):内存:需要把 N 个文件项复制到局部 map(O(N))。时间:对每个目录需要对其条目进行排序。若所有文件都在同一目录(最坏),则排序成本 O(N log N)。总体上常见是 O(sum_k k log k) (k 为各目录条目数)。增量更新优化:可以只重算受影响的目录及其祖先。例如 Put(path) 只需重算其父目录,然后...
- 1 简介Merkle(Ralph Merkle)定义的核心性质:通过对叶子逐层哈希得到根,根可以高效且不可篡改地代表整个集合/目录树。因每个父节点的哈希是由其子项的哈希决定的,根哈希就体现在树上对所有叶子(文件内容/Blob)和名称/结构的“承诺(commitment)”。本文介绍“Merkle 树”,也说明它和 FlatTree( map[path] -> BlobID 的扁平存储)如何... 1 简介Merkle(Ralph Merkle)定义的核心性质:通过对叶子逐层哈希得到根,根可以高效且不可篡改地代表整个集合/目录树。因每个父节点的哈希是由其子项的哈希决定的,根哈希就体现在树上对所有叶子(文件内容/Blob)和名称/结构的“承诺(commitment)”。本文介绍“Merkle 树”,也说明它和 FlatTree( map[path] -> BlobID 的扁平存储)如何...
- 1 简介本文实现无第三方依赖、可直接运行 的版本管理示例。特点: FlatTree 用 map[string][32]byte 存“路径→blob sha256”。提供:Put/Get/Delete/ListPrefix/RenameDir。提供:MerkleRoot() 计算目录树的哈希(自底向上,目录条目采用确定序:先按名字排序,数据格式 “blob <name>\n<hex>\n” ... 1 简介本文实现无第三方依赖、可直接运行 的版本管理示例。特点: FlatTree 用 map[string][32]byte 存“路径→blob sha256”。提供:Put/Get/Delete/ListPrefix/RenameDir。提供:MerkleRoot() 计算目录树的哈希(自底向上,目录条目采用确定序:先按名字排序,数据格式 “blob <name>\n<hex>\n” ...
- Gin 是一个用 Go 语言编写的高性能 Web 框架,它提供了丰富的功能和灵活的配置选项,适用于构建高效、可扩展的 Web 应用程序。下载gin可以使用go get -u github.com/gin-gonic/gin在 main.go 文件中编写一个简单的 Gin 应用程序package mainimport ( "net/http" "github.com/gin-gon... Gin 是一个用 Go 语言编写的高性能 Web 框架,它提供了丰富的功能和灵活的配置选项,适用于构建高效、可扩展的 Web 应用程序。下载gin可以使用go get -u github.com/gin-gonic/gin在 main.go 文件中编写一个简单的 Gin 应用程序package mainimport ( "net/http" "github.com/gin-gon...
- 1 简介零值初始在Go 的零值初始化(zero-value initialization)是一项核心语言设计,旨在提升程序的安全性、简洁性和可靠性。它背后的“安全性哲学”源自对 C/C++ 中“未定义行为”(undefined behavior)问题的深刻反思,并借鉴了 Java、Rust 等语言在默认值语义上的成功经验。 2 什么是“零值初始化”在 Go 中,使用 var 声明变量时,如... 1 简介零值初始在Go 的零值初始化(zero-value initialization)是一项核心语言设计,旨在提升程序的安全性、简洁性和可靠性。它背后的“安全性哲学”源自对 C/C++ 中“未定义行为”(undefined behavior)问题的深刻反思,并借鉴了 Java、Rust 等语言在默认值语义上的成功经验。 2 什么是“零值初始化”在 Go 中,使用 var 声明变量时,如...
上滑加载中
推荐直播
-
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步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签