【问题标题】:Dart generic constraints to several types and set default value将通用约束设置为多种类型并设置默认值
【发布时间】:2020-01-28 19:45:15
【问题描述】:

为了方便起见,我想为 RxDart 类创建一些扩展类。但我找不到用泛型做一些基本事情的方法,例如我需要将泛型类型限制为几种类型。以下是我将如何在 C# 中实现它

MyGenericType<T> where T : bool, int { ... }

因此将 T 限制为 bool 和 int 类型。我将如何在飞镖中做同样的事情? 文档仅显示具有单一类型限制的示例,如下所示:

class MyGeneric<T extends SomeClass> ...

我也尝试使用逗号,但它做了另一件事,它需要我的泛型类型来扩展它们,这不是我需要的。有可能吗?

还有另一个相关问题:我还需要为这些泛型设置默认值。同样,C# 等价物是

T value = default(T);

dart 中有这样的东西吗?

【问题讨论】:

    标签: generics dart default extend


    【解决方案1】:

    没有,也没有。

    Dart 没有多个约束或联合类型,因此您不能拥有包含 boolint 的类型变量,也不能拥有仅允许这些类型的值的普通变量。

    Dart 类型也没有任何方法来定义默认值。 使用可空类型和null 作为默认值。 Dart 中的所有类型都是对象类型,可以通过添加? 使其为空。

    【讨论】:

      猜你喜欢
      • 2019-10-26
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 2021-12-24
      • 2017-02-06
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      相关资源
      最近更新 更多