对象是什么 Dart的语法含义?

在以下代码示例中,来自flutter docs:

class RandomWords extends StatefulWidget {

@override

createState() => RandomWordsState();

}

class RandomWordsState extends State<RandomWords> {

@override

Widget build(BuildContext context) {

final wordPair = WordPair.random();

return Text(wordPair.asPascalCase);

}

}

State<RandomWords>语法到底是什么意思?

我了解您可以使用以下语法为集合中包含的对象(例如列表)指定类型- List <String>

但是我不明白背后的动机State<RandomWords>

此外,如何RandomWordsStateRandomWords声明中引用RandomWords,也可以在声明中引用RandomWordsState?那不应该导致循环引用错误或其他原因吗?

我来自动态类型的语言(例如python),这对我来说有点奇怪,有人可以将我指向正确的地方吗?

回答:

<RandomWords>是传递给State类的通用类型参数。

State班的样子

abstract class State<T extends StatefulWidget> extends Diagnosticable {

RandomWords将被传递到T其具有一个约束类型参数T需要是的一个子类StatefulWidget

State 还有一个使用type参数的字段和getter

  T get widget => _widget;

T _widget;

这将导致小部件类型的属性,该属性在其子类中提供正确的自动补全和类型检查 RandomWordsState

假设你有

class RandomWords extends StatefulWidget {

RandomWords({this.fixed});

final WordPair fixed;

@override

createState() => RandomWordsState();

}

class RandomWordsState extends State<RandomWords> {

@override

Widget build(BuildContext context) {

// vvvv here we can access `fixed` in a spanly typed manner

final wordPair = widget.fixed ?? WordPair.random();

return Text(wordPair.asPascalCase);

}

}

另请参阅https://www.dartlang.org/guides/language/language-

tour#generics

以上是 对象是什么 Dart的语法含义? 的全部内容, 来源链接: utcz.com/qa/411346.html

回到顶部