Je viens de C#/F #/Haskell alors j'essaie de trouver des solutions aux problèmes de programmation que j'ai l'habitude de résoudre avec les types.Quelles sont les bonnes solutions de contournement pour le manque de sémantique de typage statique de dart?
classe A où T: new() en C#, c'est principalement ainsi je peux faire un nouveau T() quelque part. Cela crée une erreur de type mal formé dans Dart. Existe-t-il une façon raisonnablement idiomatique de résoudre ce problème? Peut-être avec des usines? J'ai fait quelques expériences avec des mixins, dans le cas de conflits de noms pour les membres mixin hérités, le dernier mixin gagne. Donc pour ce qui suit: abstract class mixA {void foo(); } abstract class mélangeB {void foo(); } la classe C étend Object avec mixA, mixB {} new C(). Foo();
cela finirait par appeler mixB.foo(), alors que la classe C extends Object avec mixB, Mixa {} finirait par appeler mixA.foo() Y at-il de toute façon d'accéder aux membres du caché les mixins? Supposons que je mélange 2 mixins avec un champ du même nom.
Est-ce que l'instance de la sous-classe a 2 champs lors de l'exécution (seulement 1 est inaccessible) ou l'objet est-il comme un dictionnaire et il y a seulement 1 emplacement pour chaque nom?