Flutter 如何在Dart中将变量名转换为字符串?

Flutter 如何在Dart中将变量名转换为字符串?,flutter,dart,dart-mirrors,Flutter,Dart,Dart Mirrors,对飞舞和飞镖来说非常陌生,所以请原谅我这个措词不当的问题 这是我拥有的通用代码: // Constructor class class ctr { String i; ctr(String a){ this.a = a; } // New variables based on contsructor var ctrA = ctr('a'); var ctrB = ctr('b'); var ctrC = ctr('c'); // Storing the variables

对飞舞和飞镖来说非常陌生,所以请原谅我这个措词不当的问题

这是我拥有的通用代码:

// Constructor class
class ctr {
  String i;
  ctr(String a){
    this.a = a; 
}

// New variables based on contsructor
var ctrA = ctr('a');
var ctrB = ctr('b');
var ctrC = ctr('c');

// Storing the variables based on constructor in an array
List ctrList = [ctrA, ctrB, ctrC]

void main() {
  String match = 'ctrB';
  for (var i = 0; i<ctrList.length; i++) {
    if(match == ctrList.toString() {
      print('The string of your match is ${ctrList[i].a}');
    } else {
      print('Error!);
    }
  }
}
//构造函数类
类中心{
第i串;
ctr(字符串a){
这个a=a;
}
//基于contsructor的新变量
var ctrA=ctr('a');
var ctrB=ctr('b');
var ctrC=ctr('c');
//将基于构造函数的变量存储在数组中
列表ctrList=[ctrA、ctrB、ctrC]
void main(){
字符串匹配='ctrB';

对于(var i=0;i这是您应该如何声明自定义对象列表的

List<ctr> ctrList= [ ctrA , ctrB , ctrC ];

void main() {
String match = 'ctrB';
for (var index = 0; i<ctrList.length; i++) {
if(match == ctrList[index].i {
  print('The string of your match is ${ctrList[i].a}');
} else {
  print('Error!);
}}
List-ctrList=[ctrA,ctrB,ctrC];
void main(){
字符串匹配='ctrB';

例如,(var index=0;i在Dart中无法获取对象名称。例如,C有
nameof()
函数,但Dart没有类似的函数

也就是说,不管你为什么需要它,可能有一种更简单的方法。因此,请随意寻求其他方法

如果您只想使用变量名作为排序的标识符,可以查看映射

Map<String,String> x = {"ctrB" : "b"};
可以简化为:

class ctr {
  String i;
  ctr(this.i);

}

声明类名时遵循CamelCase约定。当元素类型为Map时,当它存储在数组中时,元素类型是什么?我假设我的列表不能再工作了。它将是List,因此字符串的映射列表:D。当然,如果您愿意,您仍然可以使用Map或任何其他类型组合来保留对象。
class ctr {
  String i;
  ctr(this.i);

}