Josh Bloch spendiert Dart neue Ausgabe von Collections

Hartmut Schlosser

Joshua Bloch ist der Java Community bekannt als einer der Urväter zahlreicher Standard Java Libraries. Seit Dezember 2011 mischt Bloch auch an Googles Dart-Sprache mit. Damals war er zum Core Libraries Architect von Dart „befördert“ worden, jetzt hat seine Mitarbeit erste Früchte getragen in Form eines Dart-Beitrags, durch den sich Dart Collections schöner ausgeben lassen.

Im Originaltext hört sich die Beschreibung folgendermaßen an:

Wrote functions to convert collections and maps to strings and invoked
these functions from the toString methods of all built-in Collection
and Map implementations. Wrote smoke tests and basher tests.

Google-Advocate Seth Ladd gibt auf seinem Blog ein Beispiel:

main() {
  var list = [1,2,3];
  print("List: $list");


  var map = {"hello": "world", "1": 1};
  print("Map: $map");


  var set = new Set();
  set.add("foo");
  set.add("bar");
  print("Set: $set");
}
  

Die VM warf als Ergebnis zu obigem Quellcode bisher Folgendes aus:

List: [1, 2, 3, ]
Map: Instance of 'LinkedHashMapImplementation'
Set: Instance of 'HashSetImplementation<Dynamic>'
  

Dank Bloch wird das Ganze nun viel schöner ausgegeben:

List: [1, 2, 3]
Map: {hello: world, 1: 1}
Set: {bar, foo}
  

Auch mit komplexeren Szenarien inklusive Rekursionen kommt das Feature klar. Nicht nur schöner wird dadurch die Ausgabe, sondern auch nützlicher, da sich beispielsweise das Debuggen einfacher gestaltet.

In den Hauptentwicklungszweig hat es das Feature indes noch nicht geschafft. Interessierte finden den Commit im bleed-edge Branch – wo er aber laut Ladd nicht mehr lange verweilen wird.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.