首页 > 解决方案 > 变量可以用作 dart 语言中命名参数的键吗?

问题描述

这就是我想要做的:

My constructor
Item({this.id})

Creating an Item
Item(ItemFields.id: 'abc')

看来我必须这样做:

Item(id: 'abc')

如果可以避免的话,我宁愿不要像这样对参数名称进行硬编码。

标签: flutterdart

解决方案


使用 可以实现与您想要的类似的东西dart:mirrors,但它有一些缺点:

  1. 不适用于所有平台(特别是在 Flutter 中根本不起作用)
  2. (与 1 相关)防止 tree-shaking,因为所有代码都可以通过反射以在编译时不可分析的方式执行
  3. API 不稳定

如果您对此的主要关注是与重命名有关,正如您的评论所暗示的,大多数 IDE 允许您重命名符号,重命名所有出现。在 VSCode 中,快捷键是 F2,在 Android Studio 中是 Shift+F6。


推荐阅读