扑镖中泛型的使用

时间:2018-11-18 20:19:57

标签: dart flutter

有人可以解释$looparray = array(); $loopend = 0; $arraymer = array(); $poolafirtsid = $previous_array_values; //previous array values do { if (sizeof($looparray) == 0) { $firstsponarray = $poolafirtsid; } else { $firstsponarray = $looparray; } $firstsponarray = getUserArray($poolafirtsid); //get user arraylist of first foreach ($firstsponarray as $avalue) { $rooparray = membercount($avalue); $bsponarray = getUserArray($avalue); //get second users arraylist 9 if (sizeof($bsponarray > 0)) { $barraymer = array_merge($barraymer, $bsponarray); } $aarraylist[$avalue] = $rooparray; } $asmallestsponid = getSmallestID($aarraylist); //get smallest id in the array if (membercount($asmallestsponid) < 3) { $loopend = 1; } else { global $pooldata; if (count($barraymer) > 0) { $pooldata = $barraymer; } print_r($pooldata); } } while ($loopend == 1); 的用法吗?

MyAppState是State类的扩展,但是MyApp是什么?

我知道php中的OOP,但不了解这一点。

<MyApp>

3 个答案:

答案 0 :(得分:0)

State<MyApp>State类的专门MyApp类。这样一来,它就可以拥有可操作于MyApp小部件或与之相关的可继承方法和属性。

例如,它允许MyAppState.widgetMyApp小部件而不是通用StatefulWidget的形式返回相应的窗口小部件。如果您随后要在返回的窗口小部件上调用MyApp特定的属性或方法,则这一点很重要。

请注意,这是必要的,因为Flutter使用type-safe Dart并尝试执行尽可能多的静态类型检查,以最大程度地减少运行时进行类型检查的成本。

答案 1 :(得分:0)

<MyApp>是通用类型State<T>的类型参数。不确定php是否具有泛型,但从本质上讲泛型允许您在各种不同类型的范围内重用``泛型''代码,同时它提供了更多的类型安全性,例如泛型可防止您意外地将double添加到intList<int>)的列表中。同样,本机示例将是通用列表List<T>,其中可以将类似add项目的相同操作应用于列表int(List<int>)或人员列表,或者一切清单。

也许可以专门从this中查看dart中的泛型。

答案 2 :(得分:0)

请始终记住,State<T>类是作为通用类实现的

扩展任何通用类时,必须为其指定类型,而该类型恰好是您的静态小部件具体实现,其名称为MyApp

对于StatfulWidget类的每个具体实现,您都需要定义扩展State<MyApp>的类的另一个具体实现,并且其名称为MyAppState,因为State<T>是泛型类我们将其编码为State<MyApp>

以便回答您的​​问题

MyApp StatefulWidget

类的具体实现的名称

StatefulWidget ----->非通用类

MyApp -------------> StatefulWidget类的具体实现

状态 ----------->

的通用类

MyAppState -> State的具体实现

希望能有所帮助..