Python 如何在Dart中创建特定类类型的对象列表?

Python 如何在Dart中创建特定类类型的对象列表?,python,dart,types,anonymous-function,anonymous-class,Python,Dart,Types,Anonymous Function,Anonymous Class,我在Python 3.x中有以下代码: _VectorOf = lambda ownerObj,classType,scope: [classType(ownerObj) for i in scope] 这段代码创建一个“classType”对象列表。“classType”是用户传递的任何类 在Dart 2.7.x中会是什么样子?如果可能的话,我不想使用“飞镖:镜子” 提前感谢。列表向量(int-length,T createObject())=> [对于(var i=0;i[]); 这将创

我在Python 3.x中有以下代码:

_VectorOf = lambda ownerObj,classType,scope: [classType(ownerObj) for i in scope]
这段代码创建一个“classType”对象列表。“classType”是用户传递的任何类

在Dart 2.7.x中会是什么样子?如果可能的话,我不想使用“飞镖:镜子”

提前感谢。

列表向量(int-length,T createObject())=>
[对于(var i=0;i
如果你想创建一个对象,你必须说明如何创建它

这种类型是不够的。使用
dart:mirrors
可能就足够了,但前提是该类型实际上有一个构造函数。它是一种类类型,而不是,比如说,一种函数类型,或者是未来的,或者是一种根本没有构造函数的东西

例如:

var-listOfStringLists=vectorOf(12,()=>[]);
这将创建一个长度为12的列表,其中每个元素都是一个新的空字符串列表

如果需要使用额外参数参数化factory函数,则只需手动将其传递:

List vectorOf(int-length,O-owner,T-createObject(O-owner))=>
[对于(变量i=0;i
这将在每次调用时将
owner
对象作为参数传递给
factory
。 另一个选择是:

List vectorOf(int-length,O-owner,T-createObject(O-owner))=>
List.generate(长度,()=>createObject(所有者));
使用
List.generate
构造函数,但忽略传递给其工厂函数的索引。

List vectorOf(int-length,T createObject())=>
[对于(var i=0;i
如果你想创建一个对象,你必须说明如何创建它

这种类型是不够的。使用
dart:mirrors
可能就足够了,但前提是该类型实际上有一个构造函数。它是一种类类型,而不是,比如说,一种函数类型,或者是未来的,或者是一种根本没有构造函数的东西

例如:

var-listOfStringLists=vectorOf(12,()=>[]);
这将创建一个长度为12的列表,其中每个元素都是一个新的空字符串列表

如果需要使用额外参数参数化factory函数,则只需手动将其传递:

List vectorOf(int-length,O-owner,T-createObject(O-owner))=>
[对于(变量i=0;i
这将在每次调用时将
owner
对象作为参数传递给
factory
。 另一个选择是:

List vectorOf(int-length,O-owner,T-createObject(O-owner))=>
List.generate(长度,()=>createObject(所有者));

使用
List.generate
构造函数,但忽略传递给其工厂函数的索引。

您指的是使用类型变量(或泛型类型标签)实例化该类型的实例对象。在Dart中,如果不使用
Dart:mirrors
,这是不可能的。您指的是使用类型变量(或泛型类型标签)来实例化该类型的实例对象。在Dart中,如果不使用
Dart:mirrors
,这是不可能的。我是Dart的新手,不知道如何使用“工厂”,我在谷歌上搜索了帮助,但我找到了关于“工厂构造函数”的主题,它们显示的示例与您的非常不同,所以我感到困惑。我如何使用这个匿名函数(请举个例子)?在我的Python代码中,“ownerObj”是每个创建的对象的所有者(作为参数传递给构造函数),但它不在代码示例中,如何添加它?谢谢,我试着添加了一个例子。这里的函数是工厂函数,而不是工厂构造函数。这不是一种特殊的函数,它只是我们所说的创建对象的函数。这是一个“工厂”,就像在美国一样。我不确定我是否理解“ownerObj”的功能。如果需要将参数传递给工厂函数,则只需显式传递即可。我还要加上一个例子。@БιλιαμΑρκεΓα在这种情况下使用
factory
是误导性的。它不是使用关键字“工厂”来创建一种特殊类型的省道,而是使用一个函数参数来创建一个类型为
T
的对象,该对象恰好被命名为“工厂”。我是Dart的新手,我不知道如何使用“工厂”,我在谷歌上搜索了帮助,但我找到了关于“工厂构造函数”的主题,它们显示的示例与您的非常不同,所以我感到困惑。我如何使用这个匿名函数(请举个例子)?在我的Python代码中,“ownerObj”是每个创建的对象的所有者(作为参数传递给构造函数),但它不在代码示例中,如何添加它?谢谢,我试着添加了一个例子。这里的函数是工厂函数,而不是工厂构造函数。这不是一种特殊的函数,它只是我们所说的创建对象的函数。这是一个“工厂”,就像在美国一样。我不确定我是否理解“ownerObj”的功能。如果需要将参数传递给工厂函数,则只需显式传递即可。我还要加上一个例子。@БιλιαμΑρκεΓα在这种情况下使用
factory
是误导性的。它不是使用关键字“工厂”来创建一种特殊类型的省道,而是使用一个函数参数来创建一个类型为
T
的对象,该对象恰好被命名为“工厂”。它可以(或许应该)重新命名以消除这种混乱。