Dart:如何创建一个空列表作为默认参数

2024-03-31

我有多个列表,如果没有为它们分配任何内容,则默认情况下它们需要为空。 但我收到这个错误:

class Example {
    List<String> myFirstList;
    List<String> mySecondList;

    Example({
        this.myFirstList = [];  // <-- Error: default value must be constant
        this.mySecondList = [];
    });
}

但当然,如果我让它保持不变,我以后就无法更改它:

Example({
    this.myFirstList = const [];
    this.mySecondList = const [];
});

...

Example().myFirstList.add("foo"); // <-- Error: Unsupported operation: add (because it's constant)

我找到了一种这样做的方法,但是我如何对多个列表执行相同的操作:

class Example {
    List<String> myFirstList;
    List<String> mySecondList;

    Example({
        List<String> myFirstList;
        List<String> mySecondList;
    }) : myFirstList = myFirstList ?? []; // <-- How can I do this with multiple lists?
}

像这样

class Example {
    List<String> myFirstList;
    List<String> mySecondList;

    Example({
        List<String>? myFirstList,
        List<String>? mySecondList,
    }) : myFirstList = myFirstList ?? [], 
         mySecondList = mySecondList ?? [];
}

如果您的类是不可变的(const 构造函数和 Final 字段),那么您需要在初始化表达式中使用 const []。

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

Dart:如何创建一个空列表作为默认参数 的相关文章

随机推荐

  • 使用 ng-class 添加多个类

    警告 此线程适用于旧的 AngularJS 我们可以有多个表达式来添加多个 ng class 吗 for eg div div 如果是的话 任何人都可以举个例子来这样做 当不同的表达式求值时应用不同的类true div Hello Worl
  • Javafx 实时线程更新

    我同时使用 Javafx 和线程 我经常遇到这个问题 我制作一个按钮 然后当单击该按钮时 使用事件处理程序 我制作一个 for 循环 将按钮更改为 1 2 3 4 5 然后在每个中间延迟一秒钟 就像倒计时一样 但发生的情况是它延迟了 5 秒
  • 性能说明:预热后代码运行速度变慢

    下面的代码运行完全相同的计算 3 次 它没有做太多事情 基本上将 1 到 100m 之间的所有数字相加 前 2 个块的运行速度大约是第三个块的 10 倍 我已经运行这个测试程序超过 10 次 结果显示差异很小 如果有的话 我希望第三个块运行
  • 安装 Swashbuckle.AspNetCore 包后,Aspnet core 2.2 默认路由更改为“~/index.html”

    在我的 Asp net Core MVC 应用程序中安装 Swashbuckle AspNetCore 后 默认路由将被 index html 页面覆盖 我现在使用 的地方是将我的应用程序重定向到 index html 而不是默认的 MVC
  • 如何推断两个人之间的财产是兄弟

    我需要推断一个人是另一个人的兄弟 如果他们有同一个父亲 所以 如果我有这个 巴特有父亲荷马 丽莎有父亲荷马 Because Bart and Lisa有同一个父亲 我想推断 丽莎有弟弟巴特 有没有什么方法可以利用任何属性特征来做到这一点 使
  • MediaCodec 和 TextureView 的 Z 顺序问题

    在我的 Android 应用程序中 我需要使用以下 Z 顺序渲染三个视图 在底部 输出表面MediaCodec解码器覆盖整个屏幕 我有一个要求 我必须转换生成的图像MediaCodec 例如缩放 中间有一个GLSurfaceView 或我定
  • 如何修改 Grails 中的域类?

    我无法弄清楚在自动创建相应的数据库表后修改域类的 标准做法 是什么 Grails 中没有 迁移 而且我无法告诉它输出它将生成的新 SQL 以便您可以将其与之前的表定义进行比较并手动发出您自己的 ALTER TABLE 命令 这就是我所做的
  • R:index()或index.xts()改变了时间序列的Date值,为什么?

    我想从使用 getSymbols 获得的时间序列中提取日期 但是当我使用 index index xts 函数时 返回的日期似乎早了一天 我无法理解为什么下面的代码中会发生这种行为 然而 预期的行为是获取与原始时间序列中的日期对象相对应的日
  • 仅在处理同一主题的 SQS 订阅后调用 AWS Lambda SNS 事件

    我想实现一个 Amazon SNS 主题 它首先将消息传递到作为该主题订阅者的 SQS 队列 然后执行也是同一主题订阅者的 AWS Lambda 函数 然后 Lambda 函数可以从 SQS 队列读取消息并并行处理其中的多个消息 数百个 我
  • 使用 HTML5 Web 数据库存储文件以供离线访问

    我正在尝试为 iPad 创建一个简单的网络应用程序 需要在没有互联网连接的地方使用 该应用程序本质上是一个简单的 幻灯片 但还包含一些视频文件 通常约为 100MB 最初 我计划在上路之前使用 HTML5 的离线清单缓存将资源同步到 iPa
  • 替换 C++ 矩阵类中特定颜色的所有像素

    1 我有一个矩阵类 Mat src imread pic png 0 http i1265 photobucket com albums jj502 anizilla demo result png http i1265 photobuck
  • 是否可以制作带有 UL/LI 且无图像的滑块? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 因此 我在谷歌上寻找滑块教程 我发现了很多 但都是图像 我想知道是否可以用 ul 元素制作一个没有图像的滑块 例如 UL 的宽度为 300
  • asp.net 自定义 HttpHandler 和 URL 路由

    我想通过自定义 HttpHandler 处理对我的应用程序 http example com whateverpath 的请求 但返回的内容取决于 whateverpath 的值 因此 访问 http example com path1 的
  • 禁用所选文件的“文档注释”警告

    Xcode 能够检查文档注释问题 并在出现问题时报告警告 例如 我使用 CocoaPods 将 Facebook SDK 添加到我的项目中 在文件中的某个时刻FBError h有以下代码 typedef NS ENUM NSInteger
  • 如何使用 sqlplus 或 sql Developer 云连接连接到 Azure Oracle 12c 数据库

    我在 azure 中有 2 个虚拟机 一个是数据库服务器 另一个是 Web 服务器 我可以获得这些服务器的远程桌面连接 并且 Web 服务器可以连接到数据库 sqlplus user password internal network ip
  • jsTree通过ajax加载子节点

    下面发布的代码通过 ajax 请求加载我的树的根元素 我的树非常大 因此我无法一次加载所有项目 因此我需要通过请求子级提供特定 ID 来加载元素 如何通过点击节点通过ajax加载元素 jstree demo div jstree plugi
  • Bootstrap 3 导航下拉菜单

    我使用带有下拉菜单的导航栏 Bootstrap 3 我调整浏览器窗口的大小 我打开菜单 我调整浏览器窗口大小 gt 767px 我打开下拉菜单 在导航栏中 问题 下拉菜单中出现滚动条 见下图 我的 nav 元素是相对位置
  • Mongod 错误:98 无法锁定文件:/data/db/mongod.lock 资源暂时不可用。 mongod 实例是否已在运行?

    2017 06 12T13 06 18 407 0300 I 存储 initandlisten initAndListen 中出现异常 98 无法锁定文件 data db mongod lock 资源暂时不可用 mongod 实例是否已在运
  • 角度材质垫 - 根据最长选项宽度选择宽度

    我有一个带有选项的垫选择 我希望将其内联设置为文本 并且下拉菜单的长度与最长的选项一样长 我可能可以使用 js css vanilla 风格进行一些黑客攻击 但正在寻找更好的解决方案 有什么想法吗
  • Dart:如何创建一个空列表作为默认参数

    我有多个列表 如果没有为它们分配任何内容 则默认情况下它们需要为空 但我收到这个错误 class Example List