当前位置: 首页 > 知识库问答 >
问题:

对象语法在Dart中是什么意思?

淳于乐池
2023-03-14

在以下代码示例中,来自颤振文档:

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);
  }
}

具体说明了什么

我知道您可以使用以下语法指定集合中包含的对象(如列表)的类型-List

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

此外,如何在RandomWords声明中引用RandomWordsState,以及如何在RandomWordsState声明中引用RandomWords?这不应该导致循环引用错误或其他什么吗?

我来自像python这样的动态类型语言,这在我看来有点奇怪,有人能给我指出正确的地方吗?


共有1个答案

方砚
2023-03-14

状态类如下所示

abstract class State<T extends StatefulWidget> extends Diagnosticable {

RandomWords将被传递给Ttype参数,该参数具有一个约束,即T需要是StatefulWidget的子类。

State还有一个使用类型参数的字段和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 strongly typed manner
    final wordPair = widget.fixed ?? WordPair.random();
    return Text(wordPair.asPascalCase);
  }
}

另见https://www.dartlang.org/guides/language/language-tour#generics

 类似资料:
  • 我正在尝试对函数返回的值发出警报,并且在警报中得到以下信息: 下面是JavaScript代码: 是我试图检查的函数。

  • 问题内容: 我使用PHP已有很长时间了,但是我看到的类似, 确切地说,我在PHP Mongo页面中看到了这一点: 那么,该怎么办?这是相当难与谷歌或像字符PHP文件中进行搜索,和。 问题答案: (美元大括号)被称为 复杂(卷曲)语法 : 之所以称其为“复杂”,是因为语法复杂,而是因为它允许使用复杂的表达式。 可以通过此语法包括具有字符串表示形式的任何标量变量,数组元素或对象属性。只需以与出现在字符

  • 问题内容: 任何人都可以确认我是否正确地在下面的方法调用中看到了该参数: 作为对象类型的数组?我不记得以前在Java中见过。 问题答案: 它等效于,但允许调用者一次只指定一个值作为参数,编译器将创建一个数组。所以这个电话: 相当于 有关更多信息,请参见varargs功能的文档(在Java 5中引入)。

  • 我在这个Config::INI Perl中找到了一个tilde 我正在处理的文本中没有波浪号。我知道很重要,因为省略、和中的任何或所有内容都会使语法与我的文本不再匹配。 因为我知道我匹配的模式是什么,所以我改变了它,使方括号位于文本表达式周围,因此: 所以在我看来,实际上是说在这里匹配一个方括号,然后期待最后一个括号。 无论如何,我知道在正常的Perl中 不管怎样,我在留档中搜索了语法和正则表达式

  • 问题内容: 我遇到了以下我不认识的Java语法。 这部分很好: 但是,我没有得到: 这是什么? 问题答案: 这提供了该类的内联(匿名)子类。 从功能上讲,它与: 和 但是由于该类定义不在方法主体之外使用,因此可以将其定义为匿名。

  • 问题内容: 我已经和Lombok一起使用并积极使用了2个月。使用Java时,我会更加熟悉。但是,我第一次遇到了该语言的以下语法结构: 这是什么意思,如何编译? 问题答案: 这是一种实验性的Lombok语法,其创建目的是在引用多个注释时支持间接层,而不是使用。 语法有点奇怪;要使用这3种功能中的任何一种,您必须在中包装要应用于构造函数/方法/参数的注释。要应用多个注释,请使用。注释本身显然也可以具有