Dart 允许我声明泛型方法,例如T first<T>(List<T> ts)
。但是如何为运算符方法声明泛型类型,例如 operator |
?是否有这样的语法(并且它是否在某处记录)?
最佳答案
Dart 运算符不能是通用的。
主要原因是没有提供类型的语法。使用通用方法,您可以将其称为 o.foo<int>(...)
显式传递类型参数。没有地方放<int>
在运算符中(不,我们不想允许 x+<int>42
,这读起来很可怕!)
此外,如果您将类型参数视为额外参数,则运算符已被限制为特定数量的参数。 同样的问题也适用于 getter 和 setter,它们不能接受额外的参数(实际上或语法上),因此它们不能是通用的。
关于generics - 如何在 Dart 强模式下声明泛型运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47416040/