如何使用 Flutter/Dart 中的枚举扩展输出我的对象属性?

问题描述

我想用这个扩展打印特定的个性化对象属性- 来源:HERE

extension ExtendedIterable<E> on Iterable<E> {
  /// Like Iterable<T>.map but callback have index as second argument
  Iterable<T> mapIndex<T>(T f(E e,int i)) {
    var i = 0;
    return this.map((e) => f(e,i++));
  }

  void forEachIndex(void f(E e,int i)) {
    var i = 0;
    this.forEach((e) => f(e,i++));
  }
}

我正在将 textFields 中的用户数据保存到 Hive 框中。

当我执行以下操作时...

final Box = Hive.Box(personTable).values.toList();
    final hiveBox = Hive.Box(personTable);
    final indexingBox = Box.mapIndex((e,i) => 'item$e index$i');
    final Person person = hiveBox.getAt(0);
    print(person);
    print(indexingBox);

我打印了以下内容

Flutter: {John,Biggs,34,Active}
Flutter: (item{John,Active} index0,item{Kostas,Panger,76,Active} index1,item{Ben,Kenobi,78,Deactivated} index2,...,item{Luke,Skywalker,45,Active} index5,item{Darth,Vader,54,Active} index6)

我希望能够有选择地枚举每个对象的属性

这是我希望能够打印的内容

  • 颤抖:约翰。 // 索引 0 名字
  • Flutter: Kostas // 索引 1 firstName
  • Flutter: Vader // 索引 6 姓

将类保存到 Hive 框中:

import 'package:hive/hive.dart';
part 'person.g.dart';

@HiveType(typeId: 0)
class Person {
  @HiveField(0)
  final String firstName;
  @HiveField(1)
  final String lastName;
  @HiveField(2)
  final String age;
  @HiveField(3)
  final String status;
  Income({
    this.firstName,this.lastName,this.age,this.status,});
  @override
  String toString() {
    return '{${this.firstName},${this.lastName},${this.age},${this.status}}';
  }
}

如果我不能一劳永逸地解决这个问题,我的脑袋可能会爆炸,这是使 DataTable 非常简单和动态加载的更大图景的一部分。感谢帮助!

解决方法

从您的列表中,您可以获取 firstName 并将其传递给函数:

如果您使用模型:

await message.author.send(`Here is an invite`)
message.member.kick('they kicked themself')
,

终于解决了!!!

box.forEachIndex((e,i) {
      final hiveBox = Hive.box(personTable);
      final person = hiveBox.getAt(i) as Person;
      print('${person.firstName}');
    });

控制台

flutter: John
flutter: Obi-wan
flutter: Luke

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...