- 在 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 家族中的其它语言一样以分号 ;...
- 簡單寫下cli的使用先下載:MetaMessage 改個名,方便使用:mv mm_0.1.8_darwin_arm64 mm一個簡單的jsonc:cat input.jsonc { "a":2,}序列化:./mm -e -i input.jsonc -o output.mmEncoding Mode, Input: input.jsonc, Output: output.mm看下大小:... 簡單寫下cli的使用先下載:MetaMessage 改個名,方便使用:mv mm_0.1.8_darwin_arm64 mm一個簡單的jsonc:cat input.jsonc { "a":2,}序列化:./mm -e -i input.jsonc -o output.mmEncoding Mode, Input: input.jsonc, Output: output.mm看下大小:...
- 第一次在 Zed 里给 Go 代码打断点,我习惯性按了 F9,然后……什么都没发生。不是报错,不是弹窗,就是纯粹的"空气安静"。那一刻我意识到:这个快得像闪电的编辑器,在调试这件事上,还像个刚学会走路的婴儿。直到我发现了这个叫 zed-go-debug 的zed 插件。简单说,它给 Zed 装上了"调试大脑"——不是简单调用 dlv,而是把 GoLand 那套丝滑的调试体验,用 Rust 重... 第一次在 Zed 里给 Go 代码打断点,我习惯性按了 F9,然后……什么都没发生。不是报错,不是弹窗,就是纯粹的"空气安静"。那一刻我意识到:这个快得像闪电的编辑器,在调试这件事上,还像个刚学会走路的婴儿。直到我发现了这个叫 zed-go-debug 的zed 插件。简单说,它给 Zed 装上了"调试大脑"——不是简单调用 dlv,而是把 GoLand 那套丝滑的调试体验,用 Rust 重...
- MetaMessage(mm)是一個結構化數據交換協議。自描述、自約束、自示例,實現了無損數據交換,是一種原生適配 AI + 人類 + 機器的下一代通用協議。 在golang中,使用mm非常簡單。 MetaMessage(mm)是一個結構化數據交換協議。自描述、自約束、自示例,實現了無損數據交換,是一種原生適配 AI + 人類 + 機器的下一代通用協議。 在golang中,使用mm非常簡單。
- 深夜三点,我又在 go.mod 里敲下 github.com/google/uuid,突然愣住:这包我用了八百个项目了,咋还没进标准库?没错,那个被 11 万+ Go 项目偷偷依赖的 UUID 包,终于要"转正"了。Issue #62026 从 2023 年吵到 2026 年,提案组终于拍板:Go 1.27 将原生支持 uuid 包。 新包长啥样?简洁到让你怀疑人生package uuidi... 深夜三点,我又在 go.mod 里敲下 github.com/google/uuid,突然愣住:这包我用了八百个项目了,咋还没进标准库?没错,那个被 11 万+ Go 项目偷偷依赖的 UUID 包,终于要"转正"了。Issue #62026 从 2023 年吵到 2026 年,提案组终于拍板:Go 1.27 将原生支持 uuid 包。 新包长啥样?简洁到让你怀疑人生package uuidi...
- 📌 一句话剧透:parser=encoding.TextUnmarshaler 让 Gin 的绑定功能终于"开窍"了! 🎬 痛点小剧场以前用 Gin 绑定自定义类型,是不是这样写的?👇// ❌ 老写法:手动解析 + 重复造轮子type Birthday stringfunc (b *Birthday) FromString(s string) error { // 自己写解析逻辑... 📌 一句话剧透:parser=encoding.TextUnmarshaler 让 Gin 的绑定功能终于"开窍"了! 🎬 痛点小剧场以前用 Gin 绑定自定义类型,是不是这样写的?👇// ❌ 老写法:手动解析 + 重复造轮子type Birthday stringfunc (b *Birthday) FromString(s string) error { // 自己写解析逻辑...
- 写Go还在手动NewXXX(db, logger, config)?NVIDIA悄悄开源了这个零依赖的DI容器,看完直呼:早该这样了! 🔍 gontainer 是什么?一句话:用函数签名自动注入依赖的轻量级容器,零外部依赖、零代码生成,纯靠 Go 泛型 + 反射实现。// 以前:手动组装,写到怀疑人生svc := NewUserService( NewDatabase(NewConf... 写Go还在手动NewXXX(db, logger, config)?NVIDIA悄悄开源了这个零依赖的DI容器,看完直呼:早该这样了! 🔍 gontainer 是什么?一句话:用函数签名自动注入依赖的轻量级容器,零外部依赖、零代码生成,纯靠 Go 泛型 + 反射实现。// 以前:手动组装,写到怀疑人生svc := NewUserService( NewDatabase(NewConf...
- 你有没有遇到过这种情况:代码逻辑看起来天衣无缝,跑起来却像个谜语人?在 Go 里,这很可能拜 变量阴影(Variable Shadowing) 所赐。 🎭 什么是 Shadowing?简单说就是「同名覆盖」func lookupSum() (int, error) { result1, err := lookup1() // 外层 err if err != nil { ... 你有没有遇到过这种情况:代码逻辑看起来天衣无缝,跑起来却像个谜语人?在 Go 里,这很可能拜 变量阴影(Variable Shadowing) 所赐。 🎭 什么是 Shadowing?简单说就是「同名覆盖」func lookupSum() (int, error) { result1, err := lookup1() // 外层 err if err != nil { ...
- 📝 一个"偷懒型"开发者的效率秘籍 | ⏱️ 阅读 4 分钟 | ✨ 文档即测试成就解锁 🎬 起因:我又被文档坑了上周写了一个"字符串工具包",想给同事用。打开 pkg.go.dev 一看文档…结果:❌ 示例代码是半年前的;❌ 注释说"返回大写",实际返回小写;❌ 同事照着抄,线上 panic 了。🤦♂️ 那一刻我悟了:文档不跑测试,等于没写。于是我翻出了 Go 的"隐藏技能":可执... 📝 一个"偷懒型"开发者的效率秘籍 | ⏱️ 阅读 4 分钟 | ✨ 文档即测试成就解锁 🎬 起因:我又被文档坑了上周写了一个"字符串工具包",想给同事用。打开 pkg.go.dev 一看文档…结果:❌ 示例代码是半年前的;❌ 注释说"返回大写",实际返回小写;❌ 同事照着抄,线上 panic 了。🤦♂️ 那一刻我悟了:文档不跑测试,等于没写。于是我翻出了 Go 的"隐藏技能":可执...
- 📖 故事开场:凌晨3点,运维群里突然炸锅:“数据库连接池爆了!” 小红揉着惺忪的睡眼打开日志,发现是昨天上线的"小优化"——给每个请求加了个go——正在疯狂创建goroutine。她默默关掉报警,在笔记本上写下:“并发不是魔法,是责任”。 🎯 第一部分:并发避坑指南(经验法则篇) 🚫 法则1:能不用并发,就别用很多新手(包括曾经的我)总觉得:加个go就能变快!但生产环境会教你做人://... 📖 故事开场:凌晨3点,运维群里突然炸锅:“数据库连接池爆了!” 小红揉着惺忪的睡眼打开日志,发现是昨天上线的"小优化"——给每个请求加了个go——正在疯狂创建goroutine。她默默关掉报警,在笔记本上写下:“并发不是魔法,是责任”。 🎯 第一部分:并发避坑指南(经验法则篇) 🚫 法则1:能不用并发,就别用很多新手(包括曾经的我)总觉得:加个go就能变快!但生产环境会教你做人://...
- 💡 一句话总结:匿名结构体 = 临时数据打包神器,用完即走,不占编制! 啥是匿名结构体?普通结构体像"正式员工",得先注册类型:type Car struct { Make string Model string Year int}camry := Car{Make: "Toyota", Model: "Camry", Year: 2020}匿名结构体?直接"外包上岗... 💡 一句话总结:匿名结构体 = 临时数据打包神器,用完即走,不占编制! 啥是匿名结构体?普通结构体像"正式员工",得先注册类型:type Car struct { Make string Model string Year int}camry := Car{Make: "Toyota", Model: "Camry", Year: 2020}匿名结构体?直接"外包上岗...
- “指针不是洪水猛兽,用好了它就是性能神器!” 💡 为什么你要关心结构体指针?说实话,很多Go新手看到指针就头大:“这不就是C语言那套吗?太底层了吧!”错!大错特错!在Go的世界里,结构体指针是你写出高性能代码的秘密武器。今天我们就来扒一扒这个"看似高冷,实则贴心"的特性。 📚 基础篇:结构体指针到底是啥? 简单说,就是"地址本"想象一下,你有个Person结构体:type Person ... “指针不是洪水猛兽,用好了它就是性能神器!” 💡 为什么你要关心结构体指针?说实话,很多Go新手看到指针就头大:“这不就是C语言那套吗?太底层了吧!”错!大错特错!在Go的世界里,结构体指针是你写出高性能代码的秘密武器。今天我们就来扒一扒这个"看似高冷,实则贴心"的特性。 📚 基础篇:结构体指针到底是啥? 简单说,就是"地址本"想象一下,你有个Person结构体:type Person ...
- 面试官:str := "Go 测试",如果直接 str[:3] 会发生什么?候选人:得到 "Go 测"?面试官:❌ 错,是乱码。这道题考察的是 Go 字符串底层原理 与 UTF-8 编码,属于必知必会的基础坑点。 1️⃣ 错误示范:直接按索引截取package mainimport "fmt"func main() { str := "Go 测试" // ❌ 错误:直接按字节截取... 面试官:str := "Go 测试",如果直接 str[:3] 会发生什么?候选人:得到 "Go 测"?面试官:❌ 错,是乱码。这道题考察的是 Go 字符串底层原理 与 UTF-8 编码,属于必知必会的基础坑点。 1️⃣ 错误示范:直接按索引截取package mainimport "fmt"func main() { str := "Go 测试" // ❌ 错误:直接按字节截取...
- 在 Go 开发中,本地缓存是提升服务性能的「秘密武器」——避免频繁访问数据库、远程接口,减少延迟。而 FastCache 作为 Go 生态中"极致速度"的代表,专为高并发、大数据量场景设计,核心优势就是:快、零 GC 压力、线程安全,而且用法极简,新手也能快速上手👇 🔍 一、FastCache 是什么?FastCache 是 VictoriaMetrics 团队开源的 Go 本地缓存库,... 在 Go 开发中,本地缓存是提升服务性能的「秘密武器」——避免频繁访问数据库、远程接口,减少延迟。而 FastCache 作为 Go 生态中"极致速度"的代表,专为高并发、大数据量场景设计,核心优势就是:快、零 GC 压力、线程安全,而且用法极简,新手也能快速上手👇 🔍 一、FastCache 是什么?FastCache 是 VictoriaMetrics 团队开源的 Go 本地缓存库,...
上滑加载中
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签