如何在Dart强模式下声明通用运算符?

时间:2017-11-21 14:53:50

标签: generics dart

Dart让我声明一般方法,例如T first<T>(List<T> ts)。但是,如何为运算符方法声明泛型类型,如operator |?是否有这样的语法(并在某处记录)?

2 个答案:

答案 0 :(得分:3)

飞镖运营商不能是通用的。

主要原因是没有提供该类型的语法。使用泛型方法,可以将其称为o.foo<int>(...)以显式传递类型参数。没有地方可以将<int>放在运算符中(不,我们不想允许x+<int>42,只是读取可怕!)

此外,如果您将type参数视为额外参数,则运算符已限制为特定数量的参数。 同样的问题适用于getter和setter,它们不能采用额外的参数(实际上或语法上),所以它们不能是通用的。

答案 1 :(得分:2)

目前不支持通用运算符。

随意“竖起大拇指”此功能请求: https://github.com/dart-lang/sdk/issues/30048