Dart 中的函数重载

2024-04-02

下面的代码:

class Tools {
  static int roll(int min, int max) {
    // IMPLEMENTATION
  }

  static int roll(List<int> pair) {
    // IMPLEMENTATION
  }
}

呈现一个The name 'roll' is already defined第二个错误roll功能。

怎么会?既然函数的参数是不同的,那么多态性不应该适用吗?

编辑。更正了标题,以便更好地反映主题。


您的代码演示的是函数重载,与多态性无关。

Dart 根本不支持函数重载。

您可以为方法使用不同的名称或可选的命名或未命名参数

// optional unnamed
void foo(int a, [String b]);
...
foo(5);
foo(5, 'bar');

// optional named
void foo(int a, {String b});
...
foo(5);
foo(5, b :'bar');

可选参数也可以有默认值。 可选的命名参数和未命名参数不能一起使用(单个函数只能使用其中一个)

多态性和静态方法:

静态方法只能在没有类名作为前缀的情况下从定义它们的类内部访问。当从子类调用时,需要使用超类的名称作为前缀。

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

Dart 中的函数重载 的相关文章

随机推荐

  • Fiddler 测试 API Post 传递 [Frombody] 类

    我有一个非常简单的 C APIController 名为 TestController 其 API 方法如下 HttpPost public string HelloWorld FromBody Testing t return t Nam
  • 组合框架更新 UI 无法正常工作

    我想尝试Combine框架 使用非常简单 按aUIButton 并更新UILabel 我的想法是 添加发布者 Published var cacheText String 订阅 cacheText assign to text on cac
  • 无法在类似字节的对象上使用字符串模式 - python 的重新错误[重复]

    这个问题在这里已经有答案了 我正在做 python 挑战并试图熟悉 python 所以在不看答案的情况下 我尝试使用 python 的 url 阅读器来读取 html 然后找到所需的字母 但是在下面的代码中我收到一个错误 最初是 pytho
  • 为 Windows 服务创建 MSI 安装程序

    我在 Visual Studio 2008 中有一个 Windows 服务项目 我还添加了安装和部署项目 不幸的是 当我安装它时 该服务没有显示在服务 MMC 管理单元中 我已经将 ProjectInstaller 添加到服务项目中 并且已
  • 使用APNS发送远程推送通知的送达报告 - IOS

    我正在使用 APNS 发送远程推送通知 要求是当通知发送给应用程序用户时 即使用户没有点击通知甚至没有看到通知 根据通知 id i 将发送收据发送到 Web 服务器 即调用 Web 服务 已收到 APNS 没有提供交付报告 他们是 APNS
  • 当数据依赖于日期时间时,在数据库中保存日期时间和时区信息的最佳实践

    关于在数据库中保存日期时间和时区信息有很多问题 但更多的是总体水平 这里我想讲一个具体的案例 系统规格 我们有一个订单系统数据库 它是一个多租户系统 租户可以使用任意时区 它是任意的 但每个租户只有一个时区 保存在租户表中一次并且永不更改
  • 为什么 int[] a = new int[1] 而不是 int a ?

    这段代码中是否有一些我在 java 中看不到的隐藏含义 怎么可能有用呢 int a new int 1 不仅仅是 int a 因为从我的角度来看这是一样的 int a 定义一个原始 int int a new int 1 定义一个有空间容纳
  • 如何在 C# 中为自定义 DataTemplateSelector 获取 DataTemplate 的 {x:DataType}

    我正在写一个自定义DataTemplateSelector for a ComboBox控件 我需要用它来显示不同的DateTemplates对于不同类型的物体 在封闭和开放模式下ComboBox 这是DataTemplateSelecto
  • SQL触发器更新另一个表

    我有一个 Maximo 数据库 其表结构无法更改 我希望在创建或更新时将主要电子邮件地址复制到 PERSON 表中 以下结构描述了 PERSON 表和 EMAIL 表 人员表 PERSONID EMAIL other irrelevant
  • 刷新页面后将焦点设置在网页上而不是 Firefox 调试器上

    我正在使用默认的 Firefox Web 开发人员工具 火狐浏览器 20 0 Mac OS X 10 7 如果我打开开发人员工具的调试器面板 但未聚焦 并刷新页面 焦点将转到调试器面板而不是刷新的页面 我可以将焦点设置为转到刷新的页面吗 如
  • ReentrantReadWriteLock 中的读锁和写锁是否有某种关联?

    请详细解释一下合同 我不知道里面是否包含两把锁ReentrantReadWriteLock有某种关系吗 或者这些只是两把普通锁的捆绑 它允许多个线程同时读取资源 但要求线程等待独占锁才能写入资源 规则是 多个读者可以同时共享资源 如果你有一
  • 检测富文本框中是否发生粘贴事件

    有没有一种方法可以让我们知道富文本框中是否发生了剪贴板粘贴事件 该事件将用于通过粘贴的文本块执行某些操作 thanks 这是我的代码 protected override void WndProc ref System Windows Fo
  • 在 Mongoose 中复制数据库

    如何在 Mongoose 中将一个数据库复制到另一个数据库 像这样的命令行 db copyDatabase sourceDb destinationDb Thanks 猫鼬中没有直接的可能性 最简单的方法似乎是使用mongodb 原生客户端
  • JMenuBar禁用后不启用

    我正在禁用JMenuBar在显示之前FileDialog 因为当FileDialog可见 使用getJMenuBar setEnabled false 然后打电话getJMenuBar setEnabled true 之后FileDialo
  • 如何使文本格式的公式在另一个单元格中执行?

    如果我的单元格 A1 包含 6 2 8 5 7 4我希望此计算在单元格 A2 中执行 因此每次我更改单元格 A1 中的某些内容时 单元格 A2 的值都会相应更改 The 应用 评价方法 https msdn microsoft com en
  • 如何编写存储过程来接受集合以使用 IN 操作删除行? [复制]

    这个问题在这里已经有答案了 我正在尝试为删除编写一个存储过程 但为了性能 我们更改了删除 sql 查询以使用IN手术 我想编写接受逗号分隔的 ID 的过程 我尝试编写一个接受单个条目 ID 的程序 程序如下 CREATE PROCEDURE
  • JMS 监听器 - 动态选择目的地

    我在部署在单独服务器上的 ActiveMQ 上有许多目的地 队列 我想从我的程序中动态收听这些目的地 目前我正在收听这些目的地 如下所示
  • 无法从 Play 商店取消发布应用程序

    当我单击 未发布 时 出现错误 您至少有一个活动的 apk 并且也无法更新应用程序 因为密钥库丢失 有什么解决办法吗 今天遇到这个问题 找到答案了here https stackoverflow com questions 67573622
  • 如何将 GitHub Actions 与多个存储库结合使用并部署到 GitHub Pages?

    有没有办法设置 Github Actions 来运行多个npm run build是 我想使用多个存储库并将它们设置为主站点上的不同网页 想象一下我有 3 个存储库 Main Angular App 和 React App 主存储库将有我的
  • Dart 中的函数重载

    下面的代码 class Tools static int roll int min int max IMPLEMENTATION static int roll List