首页 > 解决方案 > 飞镖语言问题 - 是什么意思

问题描述

是什么<RandomWords>意思?Dart 语言的语法是什么?

class RandomWords extends StatefulWidget {
  @override
  State createState() {
  return new RandomWordsState();
 }
}

class RandomWordsState extends State<RandomWords>{
  @override
  Widget build(BuildContext context) {

    return new Scaffold(

    );
 }
}

是什么<RandomWords>意思?Dart 语言的语法是什么?

标签: flutterdart

解决方案


您正在指定此状态的状态,就像您说以下内容时一样:

List<String> a;

你说的是这个列表是由什么组成的。

换句话说,这意味着State类是一个Generic 类

List类的文档中,您会看到他们实际上将其称为: List<E> class. 因此,无论您在 List 中放置什么类型,包含的所有相关方法E(作为参数或作为返回)都将相应调整签名,即:

last ↔ E
Returns the last element.

如您所见,该last方法返回 List 包含的相同类型,这是预期的。

使用 this 主要是为了类型安全,所以如果你尝试在 a 中插入一个数字List< String>,编译器会知道并检测到错误。

此外,如果您是开发 Generic 类的人,它将有助于避免代码重复,因为您不必为世界上每种可能的 List 类型编写实现。

定义类时,您可以执行以下操作(来自 dart Language Tour 的示例):

abstract class Cache<T> {
  T getByKey(String key);
  void setByKey(String key, T value);
}

而且,用他们的话说:

在此代码中,T 是替代类型。它是一个占位符,您可以将其视为开发人员稍后将定义的类型。

另外,作为最后一个提示,我们可以在上面链接的 State 类的文档中看到,泛型类型必须是继承自 Stateful Widget 的东西,因此您不要尝试创建State< Int>.

State<T 扩展 StatefulWidget> 类


推荐阅读