Go 是否支持内置类型(如映射和切片)的运算符重载?

2023-12-01

在Python中,我可以通过定义来定义覆盖列表项访问和字典值访问的类型__getitem__()。我可以在 Go 中做类似的事情吗?

// What I mean is:
type MySlice []MyItem
// Definition of MySlice
......
func (s MySlice) getItem(i int) MyItem {
}
......
// Access is overrided with calling getItem()
item := ms[0] //calling ms.getItem(0)
// Is this doable?

不,运算符重载不是 Go 的特性。

引用自官方常见问题解答解释why:

如果方法分派也不需要进行类型匹配,那么它就会被简化。其他语言的经验告诉我们,使用具有相同名称但不同签名的多种方法有时是有用的,但在实践中也可能会造成混乱和脆弱。仅按名称匹配并要求类型一致是 Go 类型系统中的一个重大简化决策。

关于运算符重载,它似乎更多的是一种方便,而不是绝对的要求。同样,如果没有它,事情会变得更简单。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go 是否支持内置类型(如映射和切片)的运算符重载? 的相关文章

随机推荐

  • 如何将向量写入FileStorage

    我已经能够使用 FileStorage 成功地将关键点 向量 描述符 Mat 和其他内容写入 yml 文件 但是 在计算一对图像之间的匹配后 我无法将匹配写入文件 我假设这是因为 DMatch 似乎是一个具有距离 trainIdx 等字段的
  • 如何从元素中删除所有属性

    如何删除整个文档中特定元素的所有属性 我正在尝试这样的事情 from bs4 import UnicodeDammit from lxml import html content open source html read document
  • iOS:将图像幻灯片的 setImageInputs 设置为图像数组

    我正在使用来自的图像幻灯片here iconArr UIImage named home min UIImage named category min UIImage named settings min UIImage named con
  • 在数据库的 dplyr 过滤函数中传递 SQL 函数

    我在用着dplyr的自动SQL后端从数据库表中查询子表 例如 my tbl lt tbl my db my table where my table在数据库中看起来像 batch name value batch A 1 1 batch A
  • 使用 Powershell 替换方括号

    如果您有一个文件名 例如 委员会会议纪要 2010 年 10 月 hq doc 如何让 Powershell 替换方括号 以下不起作用 ls filter foreach Process Rename Item NewName Name r
  • 如何在slick中使用事务

    我有这样的插入方法 权重是索引 implicit def run A action DBIOAction A NoStream lt slick dbio Effect Future A db run action def insert n
  • 计算 int 中使用的位数

    如果你有二进制数 10110 我怎样才能让它返回 5 例如 一个数字表示使用了多少位 下面列出了一些类似的例子 101 应返回 3 000000011 应返回 2 11100 应该返回 5 101010101 应返回 9 在Java中如何以
  • IIS 是否可以要求 SSL 客户端证书而不将其映射到 Windows 用户?

    我希望能够将 SSL 客户端证书映射到 ASP NET Identity 用户 我希望 IIS 完成尽可能多的工作 协商客户端证书并可能验证它是否由受信任的 CA 签名 但我不希望 IIS 将证书映射到 Windows 用户 客户端证书传递
  • 在 QtWebEngine 中捕获 JavaScript 事件

    我必须使用 JavaScript 捕获从网页分派的事件 然后将其连接到我的 MainWindow 类中的插槽 接近这个的东西 QWebEngineView view view gt load QUrl https test com conn
  • Google 地图 - 围绕现有标记创建多边形

    我不知道这是否可能 但我使用谷歌地图通过覆盖层上的标记来绘制实体的位置 我希望能够在所有创建的标记周围创建一个多边形或某种其他类型的覆盖对象 突出显示标记的范围 类似于集水区图 在从数据库中检索所有标记并映射范围之前我不会知道 任何人有任何
  • F# 中不同文件的类型和函数之间的循环依赖问题

    我当前的项目使用具有 40 种不同类型 可区分联合 的 AST 并且该 AST 中的几种类型具有循环依赖关系 类型不是很大 因此我将它们放在一个文件中并应用type and 相互依赖类型的构造 现在 我添加函数来对 AST 中的每个元素进行
  • 如何在 Eclipse PAHO Java MQTT 客户端和 Mosquitto 代理之间创建 PSK 连接?

    我正在尝试在 mosquitto mqtt 代理和使用 Eclipse Paho 客户端库的 Java 编写的应用程序之间配置预共享密钥加密连接 我已成功在两者之间建立了连接 不使用加密 而是使用 SSL 其中服务器证书经过身份验证 但没有
  • 没有这样的模块“Sinch”Xcode 9.1 Swift 4

    这个问题可能与这个 重复 Sinch 集成到 swift 项目中 但我正在执行所有这些步骤 但遇到同样的错误 没有这样的模块 Sinch 我遵循以下步骤 请检查并告诉我是否遗漏了任何步骤或需要添加 我已将其添加到我的 podfile 中 吊
  • jQuery 验证:如果填充了另一个输入,则只需要输入

    我在用jQuery 验证插件来验证 配置页面 我有很多输入 如姓名 电话 电子邮件 最后是 更改密码 部分 我有 3 个输入 例如
  • 在 WooCommerce 中设置优惠券描述

    如果用户成为会员的时间足够长 我的网站会动态地向用户提供优惠券 当我生成优惠券时 我想为优惠券分配一个描述 但是 我似乎无法通过使用密钥更新帖子的元数据来分配描述description as the docs建议我应该可以 目前我正在尝试像
  • WordPress 不处理外部 php 文件

    我正在尝试为 WordPress 编写自己的主题 并编写了一个包含所有模态 twitter bootstrap 的文件 这些模态是 html 我将其添加到主题部分 创建了一个 inc 文件夹 并将其命名为 modals php 我通过 ph
  • 在适用于 iPhone 的 OpenGL ES 中请求 DepthBuffer

    我正在 iPhone 上创建 3D OpenGL ES 视图 并希望设置深度缓冲区 以便可以使用它 我正在打电话glEnable GL DEPTH TEST 等等 但因为我还没有设置 z 缓冲区 所以它什么也不做 我正在寻找一个等效的调用g
  • 模板中的 Angular 2 主题标签是什么意思?

    我正在使用 Angular 2 我发现了类似的东西
  • 设置两个带有 QStyledItemDelegate 的验证器后,QtableView 就会崩溃

    基于这个答案Question我更进一步 基于 QStyledItemDelegate 创建了两个单独的验证器 一个用于整数 一个用于双精度 如果每个验证器是唯一的一组 则它可以完美工作 一旦我尝试设置两个验证器 每个验证器都在其单独的列中
  • Go 是否支持内置类型(如映射和切片)的运算符重载?

    在Python中 我可以通过定义来定义覆盖列表项访问和字典值访问的类型 getitem 我可以在 Go 中做类似的事情吗 What I mean is type MySlice MyItem Definition of MySlice fu