如何使 Dart 对象/类可索引?

2024-01-10

在Python中,我可以通过覆盖使任何类支持索引__getitem__像这样:

class Test:
   def __getitem__(self, key):
      return self.data[key]

Dart 是否有类似的构造?


假设__getitem__thing 可以让你使用“索引”语法(object[index]),是的,Dart 可以让你通过定义来做同样的事情operator []。例子:

class Test {
  var data = {
    "a": 1,
    "b": 2
  };

  operator [](index) => data[index];
}

main() {
  var t = new Test();
  print(t["a"]);
  print(t["b"]);
}

您还可以定义“相反”operator []=:

class Test {
  Map data = {
    "a": 1,
    "b": 2
  };

  operator [](index) => data[index];
  operator []=(index, value) { data[index] = value; }
}

main() {
  var t = new Test();
  print(t["a"]);
  print(t["b"]);
  t["c"] = 3;
  print(t["c"]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Dart 对象/类可索引? 的相关文章

随机推荐

  • C# 控制台会因写入行过多而溢出吗?

    如果我有一个每秒多次执行 Console Writeline 的程序 并且该程序长时间运行 控制台是否会因行数过多而溢出 我只是想知道它最终是否会抛出 IO 异常 或者 Console Writelines 的数量是否几乎是无限的 不 它不
  • 当代码为 401 时,如何在 okhttp 中获取响应正文?

    我正在使用 OkHttp 3 2 0 这里是构建请求对象的代码 MediaType JSON MediaType parse AppConstants CONTENT TYPE VALUE JSON RequestBody body Req
  • 过滤后的列表项将打开原始列表项的活动

    经过大量时间在这里和其他地方的搜索后 我无望找到解决方案 所以这是我的问题 我创建了一个列表视图 并在其之上添加了一个搜索栏 当我使用搜索栏来过滤结果时 当我单击第 7 项时 它总是从第一个活动开始 而不是打开特定的单击活动 即 7 我期待
  • 安装 OpenCV for Python(多个 python 版本)

    我的机器上安装了两个不同版本的 python 2 4 和 2 7 我正在尝试安装 2 7 版本的 OpenCV 2 4 5 cmake D CMAKE BUILD TYPE RELEASE D CMAKE INSTALL PREFIX us
  • Swift 中的 For 循环

    突然 我在Apple文档中学到的for循环结构停止工作 它显示一个错误 预期声明 谁能告诉我新语法是什么 let CirclePoints 84 var circlePoint 0 for circlePoint in 0
  • 合并树结构中分支的模式或算法?

    我正在尝试将 DAG 有向无环图 映射到下面显示的结构中 这是我开始的 DAG 的示例 其中弧线总是从左向右 然后 我恢复该图并将其跨越到具有重复节点的树中 如下所示 我正在寻找的是一些算法或模式来实现以下合并结构 注意再次恢复 目标是生成
  • Angular 应用程序无法在 Azure 上找到资产文件

    我刚刚通过运行 ng build prod 并将其推送到 git 将我的 Angular 应用程序部署到 azure 但收到 404 错误 指出它找不到资产文件夹中的 json 文件 我也尝试过运行 ng build prod base h
  • 如何从 Eclipse 设置 java.library.path

    我怎样才能设置java library path对于整个 Eclipse 项目 我正在使用一个依赖于操作系统特定文件的 Java 库 并且需要找到一个 dll so jnilib 但应用程序总是退出并显示一条错误消息 指出在库路径上找不到这
  • 使用 OpenCV3 进行视频中的人脸识别时出现未处理的异常 (opencv_core310.dll)

    下面的代码用于识别我从下面的链接获得的脸部 http docs opencv org 3 0 beta modules face doc facerec tutorial facerec video recognition html htt
  • Firebase:如何将视频存储在存储中,然后将视频 URL 存储在数据库中?

    这是我第一次使用 Firebase 我读到您应该将视频存储在存储中 然后将该唯一的 URL 存储在其数据库中 我将如何采取这种方法 例如 如果用户请求播放特定视频 我如何从数据库中获取 URL 然后使用该 URL 将视频从数据库中提取出来
  • 使用字符串引用时,引用 Powershell 数组索引会产生意外结果

    我试图找出为什么会发生以下情况 如果您有 arr Filename1 Filename2 for i 0 i le arr Length 1 i write host arr i write host arr i write host ar
  • 使用 AVPlayer 时保持良好的滚动性能

    我正在开发一个有集合视图的应用程序 并且集合视图的单元格可以包含视频 现在我正在使用以下方式显示视频AVPlayer and AVPlayerLayer 不幸的是 滚动性能很糟糕 这好像是AVPlayer AVPlayerItem and
  • 当图像较小时,在引导模式中垂直对齐中心

    我正在使用引导模式来显示不同尺寸的图像 我希望模态主体具有最小的宽度和高度 实际上是 600 400 因此 当图像较大时 它会扩展并运行良好 但当图像的高度低于 400 像素时 图像会在顶部 垂直 对齐 所以我想将它垂直对齐在模态主体的中间
  • gwt 的日期时间库

    我正在开发一个 gwt 应用程序 其中涉及对日期时间的高级操作 从一个时区转换到另一个时区等 Gwt 有一些用于处理日期的低级内容 但它们对我来说太低级了 gwt 是否有类似于 joda time 或 Threeten 的选项 您可以查看以
  • 如何获取 Python OrderedDict 中的前 3 个元素?

    如何获取 Python OrderedDict 中的前 3 个元素 也可以从该字典中删除数据 例如 如何获取 Python OrderedDict 中的前 3 个元素并删除其余元素 让我们创建一个简单的OrderedDict gt gt g
  • Angular2 模板解析错误:嵌入模板上的任何指令均未使用属性绑定 ngFor

    这是 Angular2 模板
  • iPad Safari 忽略 html5 视频上方的 div onclick

    我在使 div 元素可点击时遇到问题 我在屏幕上有一个 HTML5 视频 在视频结束事件之后 我使用 z index 属性创建了一些位于视频上方的 div 元素 录制这个 div 时没有任何反应 但如果这个 div 不位于视频上方 则一切正
  • Java图形库[重复]

    这个问题在这里已经有答案了 我一直在这里寻找对用于图形可视化表示的 java 库的任何引用 但我只找到了直方图 饼图等的库 我正在寻找一个图形库 带有顶点 节点等的图形库 任何人都可以推荐吗 我会和JUNG http jung source
  • 开发人员如何制作 iOS Simulator 动画 .gif? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我经常在 GitHub 上看到很多这样的内容 如何重现这个 gif 动画效果 https github com autresphere A
  • 如何使 Dart 对象/类可索引?

    在Python中 我可以通过覆盖使任何类支持索引 getitem 像这样 class Test def getitem self key return self data key Dart 是否有类似的构造 假设 getitem thing