Daftar tupel di flutter / dart

Oct 09 2020

Saya ingin memiliki daftar tupel di dart / flutter, putar di atasnya dan baca variabel pertama dan kedua. Ada paket pub.dev yang membuat tupel di flutter. Apakah ada cara lain dalam dart? Apakah saya perlu menggunakan kelas untuk membuat tupel seperti yang dilakukan paket flutter?

Saya mulai membuat contoh di dart pad

void main() {
  List testList = [("a",1),("b",2),("c",3),("d",4),("e",5)];
  
  
  for (var i = 0; i < 5; i++) {
    print('hello $i');
    currentItem = testList[i];

  }
}

Jawaban

5 julemand101 Oct 09 2020 at 15:53

Contoh bagaimana Anda dapat mengulang pasangan data Anda dengan menggunakan Mapstruktur data as:

void main() {
  final testMap = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5};

  for (final mapEntry in testMap.entries) {
    final key = mapEntry.key;
    final value = mapEntry.value;

    print('Key: $key, Value: $value');
    // Key: a, Value: 1
    // Key: b, Value: 2
    // Key: c, Value: 3
    // Key: d, Value: 4
    // Key: e, Value: 5
  }
}

Anda juga dapat dengan mudah memperkenalkan Pairkelas Anda sendiri yang memungkinkan Anda untuk mengikat dua objek menjadi satu:

class Pair<T1, T2> {
  final T1 a;
  final T2 b;

  Pair(this.a, this.b);
}

void main() {
  final testList = [
    Pair("a", 1),
    Pair("b", 2),
    Pair("c", 3),
    Pair("d", 4),
    Pair("e", 5)
  ];

  for (final pair in testList) {
    print('${pair.a} -> ${pair.b}');
  }
  // a -> 1
  // b -> 2
  // c -> 3
  // d -> 4
  // e -> 5
}

Dalam kebanyakan kasus, saya akan merekomendasikan Anda untuk membuatkan classkebutuhan khusus untuk Anda karena akan lebih mudah untuk membuat kode jenis aman.

3 jamesdlin Oct 09 2020 at 22:34

Jika Anda ingin menggunakan package:tuple, Anda dapat melakukan:

void main() {
  var testList = <Tuple2<String, int>>[
    Tuple2("a", 1),
    Tuple2("b", 2),
    Tuple2("c", 3),
    Tuple2("d", 4),
    Tuple2("e", 5),
  ];
  
  for (var tuple in testList) {
    print('current tuple: (${tuple.item1}, ${tuple,item2})');
  }
}