我来自 C#/F#/Haskell,所以我试图为我习惯于使用类型解决的编程问题提出解决方案。
class A where T : new() 在 C# 中,这主要是我可以在某处做 new T()。这会在 Dart 中创建格式错误的类型错误。有没有一种合理的惯用方法来解决这个问题?也许与工厂?
我对 mixin 做了一些实验,在继承的 mixin 成员的名称冲突的情况下,最后一个 mixin 获胜。因此对于以下内容:抽象类 mixA { void foo(); } 抽象类 mixB { void foo(); } 类 C 扩展 Object 与 mixA, mixB {} new C().foo();
这最终会调用 mixB.foo() 而类 C 使用 mixB 扩展 Object,mixA {} 最终会调用 mixA.foo() 无论如何可以访问隐藏的 mixins 的成员吗?
假设我将 2 个 mixin 与同名字段混合。子类实例在运行时是否有 2 个字段(只有 1 个是不可访问的)或者对象是否像字典并且每个名称只有 1 个插槽?