百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

再一次看到了 Go 的节制int128 类型要不要支持

toyiye 2024-06-21 12:23 11 浏览 0 评论

大家好,我是站长 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 在设计泛型时,考虑了对该类型的兼容问题。这个问题我们以后再聊。

相关推荐

Python第三课3. Python 的非正式介绍

3.Python的非正式介绍?在下面的例子中,通过提示符(>>>与...)的出现与否来区分输入和输出:如果你想复现这些例子,当提示符出现后,你必须在提示符后键入例子中的每...

如何使用 Python 构建一个“谷歌搜索”系统?| 内附代码

来源|hackernoon编译|武明利,责编|Carol出品|AI科技大本营(ID:rgznai100)在这篇文章中,我将向您展示如何使用Python构建自己的答案查找系统。基本上,这...

Python 模拟微博登陆,亲测有效!(如何用python爬微博)

今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密。那么首先就要做那件必做之事!模拟登陆……代码是参考了:https://www.douban.com/note/201767245/,我对代码进...

Python 驱动的 AI 艺术批量创作: 免费的Bing 绘图代码解析

这篇文章将深入分析一段Python代码,该代码利用Bing的AI绘图功能,即bing的images/create,根据用户提供的文本提示生成图像。我们将详细探讨其工作原理、代码结构、...

Python爬虫Scrapy库的使用入门?(python scrapy爬虫)

Scrapy是一个开源的并且支持高度可扩展的Python爬虫框架,主要被用来实现从网站提取数据。出现之初就是为网页抓取而设计,但是现在它也可以被用于从APIs中抓取数据或通用的Web抓取任务。Sc...

Python3 标准库概览(python标准库有什么)

操作系统接口os模块提供了不少与操作系统相关联的函数。>>>importos>>>os.getcwd()#返回当前的工作目录'C:\\Python34...

零基础入门学习Python(三):变量和字符串

分享兴趣,传播快乐,增长见闻,留下美好!亲爱的您,这里是LearningYard新学苑。今天小编为大家带来的是...

Python读写docx文件(python读写word)

Python读写docx文件Python读写word文档有现成的库可以处理pipinstallpython-docx安装一下。https://python-docx.readthedocs.io/...

如何利用Xpath抓取京东网商品信息

前几小编分别利用Python正则表达式和BeautifulSoup爬取了京东网商品信息,今天小编利用Xpath来为大家演示一下如何实现京东商品信息的精准匹配~~HTML文件其实就是由一组尖括号构成的标...

如何利用Xpath选择器抓取京东网商品信息

前几小编分别利用Python正则表达式和BeautifulSoup爬取了京东网商品信息,今天小编利用Xpath来为大家演示一下如何实现京东商品信息的精准匹配~~HTML文件其实就是由一组尖括号构成的标...

python之Scrapy爬虫案例:豆瓣(python爬虫书籍豆瓣评分)

python模块之Scrapy爬虫框架...

Python编程入门学习:最常见加密方式和Python实现

前言我们所说的加密方式,都是对二进制编码的格式进行加密的,对应到Python中,则是我们的Bytes。所以当我们在Python中进行加密操作的时候,要确保我们操作的是Bytes,否则就会报错。将字符串...

一日一技:Python中的string.rindex()方法

string.rindex()方法string.rindex()方法返回字符串内子字符串的最高索引(如果找到)。如果未找到子字符串,则会引发异常。rindex()的语法为:...

Asterisk-ARI对通道中的DTMF事件处理

Asterisk通道中关于DTMF处理是一个非常重要的功能。通过DTMF可以实现很多的业务处理。现在我们介绍一下关于ARI对通道中的DTMF处理,我们通过自动话务员实例来说明Asterisk如何创建一...

PyQt5 初次使用(pyqt5下载官网)

本篇文章默认已安装Python3,本篇文章默认使用虚拟环境。安装pipinstallPyQt5PyQt一些图形界面开发工具QtDesigner、国际化翻译工具Liguist需要另外...

取消回复欢迎 发表评论:

请填写验证码