Dart让我声明一般方法,例如T first<T>(List<T> ts)
。但是,如何为运算符方法声明泛型类型,如operator |
?是否有这样的语法(并在某处记录)?
答案 0 :(得分:3)
飞镖运营商不能是通用的。
主要原因是没有提供该类型的语法。使用泛型方法,可以将其称为o.foo<int>(...)
以显式传递类型参数。没有地方可以将<int>
放在运算符中(不,我们不想允许x+<int>42
,只是读取可怕!)
此外,如果您将type参数视为额外参数,则运算符已限制为特定数量的参数。 同样的问题适用于getter和setter,它们不能采用额外的参数(实际上或语法上),所以它们不能是通用的。
答案 1 :(得分:2)
目前不支持通用运算符。
随意“竖起大拇指”此功能请求: https://github.com/dart-lang/sdk/issues/30048