【问题标题】:Dynamic variable NAME creation in Flutter在 Flutter 中创建动态变量 NAME
【发布时间】:2019-09-02 13:09:10
【问题描述】:

我需要根据情况动态创建一个List变量。

我有一个字符串列表。这些是动态创建的。

List Categories = [name: 'String 1', name: 'String 2', name: 'String 3']

我需要动态创建一个可以保存每个字符串的 List 变量。不要问我为什么,但请相信我。

我需要这样的东西:

for(int i = 0 ; i < Categories.length ; i ++)
{
    // logic to create a variable of List type and even name it according to the value it is holding:
    List String1Var = Categories.[i].name

     // or even better : 

    List $Categories.[i].name = ....



 } 

所以 String1Var 需要命名为 String1Var - 即名称本身必须是动态的,内容也必须是动态的。

这在颤振中可能吗?或者 Google 是否还没有改进他们的语言,以便它适用于像我这样的人?

这是正确的语法吗?如何动态创建变量名?

【问题讨论】:

标签: flutter dart


【解决方案1】:

Map的帮助下,您可以完成您想要的。

我们不是创建单独的变量,而是生成动态的keys 并将values 存储在其中,因为 Dart 没有动态变量的概念。

代码:

  final Map myCategoryDynamic = {};

  for(int i = 0 ; i < Categories.length ; i ++)
  {
// logic to create a variable of List type and even name it according to the value it is holding:
    myCategoryDynamic['String'+i.toString()+'Var'] = Categories.[i].name;

  }

所以当我们需要检查值时 - 我们可以通过 - myCategoryDynamic[String1Var] myCategoryDynamic[String2Var] 等等来检查......

【讨论】:

  • 嗨安莫尔。感谢您的出色贡献。但我不明白这一行:myCategoryDynamic['String'+i.toString()+'Var']。如果元素名称是 'String1' - 那么 myCategoryDynamic 应该被称为 myCategoryDynamicString1
  • @Kiro777 - 谢谢!我们不是创建单独的variables,而是生成动态的keys——并将值存储在其中,因为 Dart 没有动态变量的概念。
  • 所以当我们需要检查值时 - 我们可以通过 - myCategoryDynamic[String1Var] myCategoryDynamic[String2Var] 等等...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多