首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏golang从入门到进阶

    Go 1.26 小争议:`go mod init` 默认版本“降级“了?

    (){fmt.Println(new(42))#Go1.26新语法}#2.直接运行,没问题!❯ 得手动改go.mod:展开代码语言:TXTAI代码解释modulemyapp-go1.25+go1.26#手动升级小项目:改一行无所谓频繁创建模块:每次都要改,烦! :BashAI代码解释gomodinitmyapp-go=1.26方案2:初始化后快速修改展开代码语言:BashAI代码解释gomodinitmyappsed-i's/go1.25/go1.26/'go.mod =1.26#2.或者在脚本中自动化echo"go1.26">>go.mod#追加覆盖#3.关注issue进展#https://github.com/golang/go/issues/77653团队协作建议 :展开代码语言:YAMLAI代码解释#在README或CONTRIBUTING中明确:项目要求:Go版本:>=1.26初始化命令:gomodinitxxx-go=1.26

    31710编辑于 2026-03-01
  • Go 1.26发布!性能提升、语法简化

    北京时间 2026 年 2 月 11 日凌晨,Go开发团队自豪地宣布Go 1.26正式发布!这一版本带来了语言语法、性能优化和开发工具等多方面的重大改进,堪称Go语言演进道路上的又一里程碑。 无论你是Go老手还是新手,这次更新都值得关注。让我们一起来看看Go 1.26都有哪些亮眼表现! ✨ 语言语法精炼升级 Go 1.26对语言本身进行了两项重要优化,让代码编写更加简洁优雅。 实验性新特性抢先看 Go 1.26引入了多个实验性功能,需要通过显式启用才能使用: SIMD支持:simd/archsimd包提供单指令多数据操作支持,为高性能计算铺平道路 安全擦除:runtime/secret 标准库增强 Go 1.26增加了三个新包:crypto/hpke、crypto/mlkem/mlkemtest和testing/cryptotest,进一步丰富了加密和测试能力。 总结 Go 1.26不仅在性能上实现了显著提升,还在语言表达力和开发体验上做出了重要改进。从语法简化到垃圾回收器优化,从工具现代化到实验性新特性,这一版本展现了Go团队对语言演进的持续投入。

    79110编辑于 2026-03-02
  • Go 1.26 新特性: Goroutine Metrics 实时“透视”调度状态

    新增6个GoroutineMetrics:官方“调度状态体检表”Go1.26在runtime/metrics中新增以下指标(单位均为uint64计数器):指标名说明监控价值/sched/goroutines-created 实战:5行代码打印Goroutine“体检报告”展开代码语言:GoAI代码解释//go.mod:go1.26+packagemainimport("fmt""runtime/metrics""time" =0:无syscall阻塞→排除I/O瓶颈⚠️若你在Go<1.26运行,会报错unknownmetric——快升级!️ 若live↑但created不↑→泄漏(goroutine卡在waiting/not-in-go)对策:waiting高→检查channel无人读、sync.WaitGroup未Donenot-in-go Go1.26的这组指标,把调度器的黑盒变成了透明仪表盘——当runnable飘红,你知道该扩容;当not-in-go暴涨,你秒懂是DNS在作祟;当created-live持续增长,你提前拦截泄漏。

    44910编辑于 2025-12-19
  • 来自专栏golang从入门到进阶

    Go 1.26 go fix 实战:一键现代化你的Go代码

    2026年Go1.26版本带来了重磅更新,其中gofix工具完成了彻底重构,从原本仅能修复废弃API的静态补丁工具,升级为智能的自动化重构工具。 而Go1.26的gofix实现了三大核心升级,完全改变了代码现代化的方式:能分析整个代码库,主动推荐符合Go惯用写法的代码转换方案;不再局限于修复废弃API,还会引导开发者使用errors.AsType 1.升级Go1.26macOS/Linux用户可以用Homebrew一键升级,其他系统直接从Go官网下载安装包:展开代码语言:BashAI代码解释#macOS/Linux升级命令brewinstallgo 六、总结Go1.26重构后的gofix,不再是简单的“补丁工具”,而是Go代码现代化的核心引擎。 Go语言的优势在于简洁、高效、易维护,而新版gofix正是让你的代码始终保持这些特性的关键工具。升级Go1.26,用好gofix,让你的Go项目既能跟上语言发展的步伐,又能减少技术债务,让开发更高效。

    23710编辑于 2026-03-13
  • 来自专栏golang从入门到进阶

    Go 1.26 新特性速览:更安全、更快、更聪明的 Go

    前几天go1.26发布了,下面来看看这次带来了哪些新特性。 类型安全的错误检查以前用errors.As要传指针,容易写错还可能panic:展开代码语言:GoAI代码解释vartarget*AppErroriferrors.As(err,&target){...}Go1.26 ⚡更快的cgo和系统调用Go1.26优化了cgo和syscall的内部状态管理,减少30%运行时开销! ✅升级建议立即升级:Go1.26兼容性极好,绝大多数项目可无缝迁移。 结语Go1.26是一次“润物细无声”的大版本:对开发者:更简洁的语法、更安全的错误处理对运维:更低的GC压力、更强的可观测性对用户:更快的响应、更稳的服务Go的哲学没变:简单、可靠、高效。

    1.5K10编辑于 2026-02-21
  • 来自专栏编码如写诗

    Go 1.26 go fix 现代化修复器:自动化代码迁移

    Go 1.26 带来了一个令人期待的工具链改进:go fix 命令的完全重写。 /bin/bash # migrate-to-go1.26.sh echo "=== 开始 Go 1.26 迁移 ===" # 1. 备份当前代码 echo "1. 备份代码..." git checkout -b backup-before-go1.26 # 2. 更新 go.mod echo "2. /bin/bash go mod edit -go=1.26 go fix ./... go test ./... 参考链接: Using go fix to modernize Go code Go 1.26 Release Notes Go Command Reference

    24010编辑于 2026-03-02
  • 来自专栏萝卜要加油

    Go 1.26 支持 new(expr):用表达式直接创建指针

    前言 Go 语言在即将到来的 1.26 版本 中,对内建函数 new 引入了一个有趣的小修改:从此 new() 不仅能接受类型,还可以接受表达式。这个变化虽小,却能让代码写得更优雅。 在 Go 1.25 及以前版本,new 只能写成: p := new(int) // 返回 *int,值为 0 而新版本中,new 可以写成: p := new(42) // 返回 *int,值为 (antonz.org) https://go.dev/play/p/cc0aOdN_tJ4? " } p := new(f()) fmt.Println(*p) // 输出 "Go" 注:new(nil) 依然会编译错误,不能传入 nil 表达式。 五、总结 Go 1.26 引入的 new(expr) 虽然是一个“小改动”,却能带来不少语法上的简洁和一致性提升。对于日常的简单值或字面量想要转指针的场景,它尤为便利。

    51110编辑于 2025-11-14
  • 来自专栏萝卜要加油

    Go 1.26 改了个默认值,开发者懵了

    发生了什么 2026 年 2 月,Go 1.26 悄悄改了 go mod init 的默认行为。 用 Go 1.26 初始化一个新项目,go.mod 里的版本号不再是 go 1.26,而是 go 1.25——整整落后了一个版本。 $ go version # go1.26 $ go mod init myapp $ cat go.mod # go 1.25 ← 等等,这不对吧? 这是一段用了 Go 1.26 新语法的代码: package main import "fmt" func main() { fmt.Println(new(42)) // Go 1.26 我装 Go 1.26,就是为了用 Go 1.26 的功能。这是最基本的直觉,工具链应当匹配它,而不是悄悄绕开它。

    36910编辑于 2026-03-04
  • 来自专栏云原生技术社区

    Kubernetes 1.26 正式发布

    作者:Kubernetes 1.26 发布团队[1] 很高兴向大家宣布,Kubernetes 1.26正式发布了。 发布主题和徽标 Kubernetes 1.26:振奋人心(Electrifying) Kubernetes v1.26 版的主题是振奋人心(Electrifying)。 在(现在遗留的)k8s.gcr.io 镜像注册表中,不会发布 1.26 版的容器镜像标签,只有 1.26 版之前的版本的标签会继续更新。 这意味着在 Kubernetes 1.26 中不支持 containerd minor 1.5 及更早的版本;如果你使用 containerd,在将该节点升级到 Kubernetes v1.26 之前, 你也可以使用kubeadm[61]轻松安装 1.26 版。

    1.1K20编辑于 2023-02-27
  • 来自专栏萝卜要加油

    Go 1.26 黑科技:跳过 GC 直接释放内存,性能飙升 200%

    runtime.free 将在 Golang1.26 中 以 GOEXPERIMENT 的方式提供实验性支持。 Memory Region 构想 —— 优雅但实现复杂 吸取了 Arena 的教训,Go 团队接着提出了更贴合 Go 哲学的概念:内存区域(Memory Region#70257[6])它设想引入一种更透明的机制 从某种意义上说,Go 正在尝试“靠自己”变得更快,而不是把负担转嫁给开发者。 其次,对性能敏感的Go程序将直接受益于此。 在未来的版本(提案目前计划针对 Go 1.26),当这一实验正式上线后,你或许会发现某些场景下 GC 压力突然降低了。 [16]go.googlesource.com[17] Go Issue 【#51317[18]】“proposal: arena: new package providing memory arenas

    1.5K20编辑于 2025-11-25
  • 来自专栏编码如写诗

    Go 1.26 新特性预览:扩展 new() 函数支持表达式参数

    Go 1.26 将通过扩展 new() 内置函数来解决这个问题,使简单类型和复合类型的指针创建方式更加统一。 new() 内置函数 当前 Go 的 new() 函数: 接受一个类型参数 T 返回指向类型 T 零值的指针 *T 示例:new(int) 返回指向 int 零值(0)的指针 提案扩展 Go 1.26 1.25 及之前) a := 3 p1 := &a // 需要先声明变量 // 新写法 (Go 1.26) p2 := new(int, 3) // 直接创建指向 3 的指针 1.26 中实现。 建议开发者: 在 Go 1.26 发布后,逐步在新代码中使用新语法 现有代码不需要立即修改,保持兼容性 关注官方文档和 Go Blog 了解更多使用示例 参考链接: 原文链接: Go 官方 GitHub

    27010编辑于 2026-03-02
  • 来自专栏golang从入门到进阶

    Go 1.26新特性:runtimesecret 学会了“阅后即焚”的魔法 ✨

    ——不,它可能正躺在RAM里晒太阳,等着被dump出来做成表情包一个让安全工程师失眠的真相大多数Go开发者有个甜蜜的误解:展开代码语言:GoAI代码解释funchandlePassword(pwdstring ✅}残酷现实:当变量“出作用域”,Go的垃圾回收器只是标记内存可复用,并不会主动擦除内容! runtime/secret:Go的“阅后即焚”模式Go1.26(实验性)悄悄塞进一个新包:runtime/secret它的使命就一个:让敏感数据用完即焚✨核心用法:一行代码开启“安全模式”展开代码语言 就算炸了也得先销毁证据”3️⃣擦除内存调用eraseSecrets()寄存器清零+栈帧擦除+堆内存标记4️⃣退出context恢复计数器,重抛panic(如有)“现场已清理,可以继续panic了”关键:这些操作普通Go 幽默总结场景以前的Go有runtime/secret的Go密钥用完“拜拜了您嘞~”(其实还在内存里蹦迪)“拜拜了您嘞~并焚毁现场”函数panic“啊啊啊啊——”(密钥随panic一起dump)“啊啊啊啊

    40710编辑于 2026-02-07
  • 来自专栏golang从入门到进阶

    Go 1.26 栈分配优化:让编译器帮你“偷懒“的内存魔法

    一句话讲清楚Go编译器现在会自动把小切片分配到栈上,而不是堆上。结果:分配更快、GC更轻、代码不用改!这不是魔法,是设计哲学的胜利:让编译器承担优化工作,开发者专注业务逻辑。 Go1.26优化:展开代码语言:TXTAI代码解释第1次append:栈上分配4个元素的小缓冲第2-4次:直接填入,零分配✅第5次+:栈满了? 正常堆分配✅你不用改一行代码✅3️⃣渐进式演进"先覆盖80%常见场景"Go1.25:固定/小动态大小切片Go1.26:append场景+逃逸切片未来:更大缓冲区?更多类型? >&1|grep"escapestoheap"结语Go的栈分配优化,本质是编译器与开发者的分工进化:你负责表达意图,编译器负责执行优化。 这背后是20多年编译器技术的积累,也是Go"简单高效"哲学的延续。下次写append时,可以放心大胆了——你的编译器,比你更懂怎么"偷懒"

    16010编辑于 2026-03-20
  • 来自专栏Go技术干货

    Go 1.26 新特性回顾:语言增强、工具升级与 Green Tea GC 默认启用

    内置函数new的加强在Go1.26里,new内置函数不再只能接收类型,现在还可以直接传入一个表达式,用来指定该变量的初始值。 例如下面的接口:展开代码语言:GoAI代码解释typeAdder[AAdder[A]]interface{Add(A)A}funcalgo[AAdder[A]](x,yA)A{returnx.Add(y)}在Go1.26 但随着Go1兼容性承诺长期稳定,这类历史修复规则已经逐渐过时。Go1.26对gofix进行了全面重构,使它从旧代码修复工具升级为代码现代化迁移工具。 gomodinitGo1.26调整了gomodinit生成go.mod文件时的默认Go版本。 如果希望新模块明确要求Go1.26,可以在gomodinit后执行:展开代码语言:GoAI代码解释gogetgo@1.26或者手动修改go.mod中的go版本。

    7821编辑于 2026-06-23
  • 来自专栏AiCharm

    每日学术速递1.26

    IJCAI 是人工智能领域中最主要的学术会议之一,原为单数年召开,自2015年起改为每年召开,本次IJCAI与ECAI一起召开。IJCAI官网显示,此次会议有4535篇的大会论文投稿,录取率仅为15%。此次会议将于2022年7月在维也纳召开。

    32310编辑于 2023-05-15
  • 反射也能用迭代器了:Go 1.26 Type.Fields 与 Value.Fields 解析

    Go 1.26 为 reflect.Type 和 reflect.Value 增加了 Fields 方法。它没有改变反射规则,但让字段遍历更直接。 新写法是否更快 Go 1.26 的实现仍按索引遍历 NumField,再调用 Field(i) 产生结果。新 API 改善的是表达方式,并不承诺性能提升。 Value.Fields 同时返回字段定义和值 两者只按声明顺序遍历直接字段 非结构体类型调用会 panic,指针需要先解引用 修改前检查 CanSet,读取接口值前检查 CanInterface 需要 Go 1.26 工具链;使用迭代器 range 时,模块语言版本至少为 Go 1.23,建议直接设置为 go 1.26.0 写在最后 Type.Fields 适合分析结构体定义,Value.Fields 适合同时处理字段描述和值

    2700编辑于 2026-06-24
  • 来自专栏Go语言学习专栏

    聊聊Go 1.26里,让我眼前一亮的几个小改进

    当你再次因为网络连接的超时控制感到纠结,Go 1.26已经悄悄给出了一个两全其美的解决方案。 Go 1.26的更新依然延续着Go团队一贯的务实风格——没有花哨的语法糖,而是聚焦于解决开发者日常编码中的具体痛点。 01 网络连接 网络编程一直是Go的强项,但长期以来,开发者在建立连接时面临一个两难选择:要效率还是要可控制性? 背景:在Go 1.26之前,你有两种主要方式建立网络连接。 Go 1.26在net.Dialer上新增了四个方法:DialTCP、DialUDP、DialIP和DialUnix。这些方法同时具备了高效和可控两个优点。 Go 1.26在net/netip包中新增了Prefix.Compare方法,提供了标准化的IP子网排序能力。

    38510编辑于 2026-03-17
  • 来自专栏萝卜要加油

    Go 1.26: 内存分配优化分析 将小对象的分配速度提升了 30%

    Go 1.26 RC1 已经发布,这意味着它很快将会正式与大家见面。 Go 1.26 的黑科技:特化分配 (Specialized Malloc) Go 1.26 引入的 Size-Specialized Malloc,本质上是对这一结构性矛盾的修正。 Go 1.26 的内存分配优化本质上是一个编译器与运行时的协同优化。 给开发者的建议 对于 Go 开发者而言,这是一个零成本的性能红利。你只需要: 升级到 Go 1.26。 无需修改代码,自动享受提升。 引用链接 [1]Go 1.26 Release Notes: https://go.dev/doc/go1.26 [2]Go Source: runtime/malloc.go: https://github.com

    48610编辑于 2026-01-07
  • 来自专栏CNCF

    Kubernetes 1.26: 动态资源分配 Alpha API

    对于用 Go 编写的驱动程序,推荐使用以下软件包: k8s.io/dynamic-resource-allocation/kubeletplugin[6] 驱动程序开发人员决定这两个组件如何通信。 $ go run . 完成后,记得使用 sudo chmod go-w 还原权限。或者,你也可以构建二进制文件并以 root 身份运行该二进制文件。 dynamic-resource-allocation/controller: https://github.com/kubernetes/dynamic-resource-allocation/tree/release-1.26 dynamic-resource-allocation/kubeletplugin: https://github.com/kubernetes/dynamic-resource-allocation/tree/release-1.26

    1.6K30编辑于 2023-02-12
  • 来自专栏信数据得永生

    NumPy 1.26 中文官方指南(一)

    NumPy 用户指南 原文:numpy.org/doc/1.26/user/index.html 本指南是一个概述,解释了重要特性;细节请参阅 NumPy 参考文档。 原文:numpy.org/doc/1.26/user/whatisnumpy.html NumPy 是 Python 中科学计算的基础包。 NumPy 快速开始 原文:numpy.org/doc/1.26/user/quickstart.html 先决条件 你需要了解一点 Python。需要恢复记忆的话,参见Python 教程。

    3.1K10编辑于 2024-04-26
领券