再一次看到了 Go 的节制:Int128 类型要不要支持?
 
本文转载自微信公众号「polarisxu」,再次制可以通过以下二维码关注。类型转载本文请联系polarisxu公众号。不支
大家好,再次制我是类型站长 polarisxu。
如果有看我写的不支 Rust 系列教程,会注意到,再次制Rust 有一个整数类型:i128/u128,类型即 16 字节长的不支整数。而 Go 是再次制不支持 int128/unit128 的。
当时,类型我也没有多想,不支感觉 128 长度应该用的再次制也少。今天,类型我发现早在 2014 年就有人提议在 Go 中增加 int128/uint128 的不支支持:https://github.com/golang/go/issues/9455。

为什么想要这个类型呢?
有人提出了相关的使用场景,总结下大概有如下几个:
UUID IPv6 hashing (MD5) timestamps cryptographic nonces database keys 。。。针对有人提出的服务器租用一些需求点,minux(很早期就参与 Go 开发的,华人,go mobile 项目是他主导的)给了如下答复:

大家注意到没,被人 ??。
ianlancetaylor(泛型是他在主导设计)给出了这样的答复:
UUID 和 IP6 的例子不够有说服力,它们很容易用其他方式实现。要不要支持 int128/uint128,关键在于有没有该类型相关的算术运算需求。在具体实现时,硬件是否很好的支持也需要考虑。
如果增加了该类型,strconv、math/big 等包为了兼容,需要增加额外的一些列函数。
他还回复了很多人的其他疑问,高防服务器他一直强调几点:
你为什么需要 int128/uint128? 是否有做运算的需要? 对语言可能有破坏,因此这个提案标记为 「Go2」其中他的一句话不少人可能要吐槽:
Go is not a language that decides what features to add based solely on demand. Of course demand plays a role, but it is not the determining factor.Go 是否增加某个特性,需求不是决定因素!
这就是 Go 一直坚持的理念:大道至简!节制!!!有人不喜欢,有人骂,但同样也会有人喜欢,有人爱。对我来说,挺喜欢 Go 的简单,Go 的节制!
最近有人在这个提案接着问:

Rust 支持了,包括 PostgreSQL 数据库也支持,Go 还不支持吗?该提案的作者给出了回复:

闲扯一句:不知道大家看出什么异样了吗?欢迎留言。
最后,int128/uint128 目测迟早应该会支持,因为 ianlancetaylor 在设计泛型时,考虑了对该类型的兼容问题。这个问题我们以后再聊。源码下载
相关文章
华硕S400E3317CA——性能卓越的笔记本电脑(华硕S400E3317CA引领移动办公新潮流)
摘要:华硕S400E3317CA是一款性能卓越的笔记本电脑,它以其出色的配置和可靠的品质在市场上备受推崇。作为一款适合移动办公的电脑,它拥有先进的处理器、高清屏幕和长久续航的电池,为用户...2025-11-04
1 前言Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。那么如何实现 Elasticsearch和 Python 的对接成为我们所关2025-11-04
Dva 是什么dva 首先是一个基于redux[1]和redux-saga[2]的数据流方案,然后为了简化开发体验,dva 还额外内置了react-router[3]和fetch[4],所以也可以理解2025-11-04
本文转载自微信公众号「Java极客技术」,作者鸭血粉丝。转载本文请联系Java极客技术公众号。前言首先说下我们为什么需要分布式 ID,以及分布式 ID 是用来解决什么问题的。当我们的项目还处于单体架构2025-11-04解决电脑显示360错误的有效方法(快速修复电脑显示360错误,让您的电脑正常运行)
摘要:电脑作为现代生活中不可或缺的一部分,经常会遇到各种问题,其中显示360错误是一个常见的困扰。这些错误可能导致电脑运行缓慢、程序无法正常启动或运行等问题。本文将介绍一些有效的方法来修...2025-11-04
当前版本 vite@2.3.7一. 适合什么项目迁移使用 vue2 的系统 内部系统 - 无需大型流量场景:因为 vite 更迭较快,导致系统需要定期改动基础功能,造成不稳定2025-11-04

最新评论