【发布时间】:2021-10-13 09:44:00
【问题描述】:
是否可以向 Dart 扩展添加接口?在 Swift 中你可以这样做:
protocol MyProtocol {
associatedtype Item
mutating func nextItem() -> Item?
}
extension MyClass: MyProtocol {
public typealias Item = T
public mutating func nextItem() -> T? {
// ...
}
}
你如何在 Dart 中做到这一点?这似乎是不可能的:
extension MyClassExtension<T> on MyClass implements MyInterface {
T? nextItem() {
// ...
}
}
【问题讨论】:
-
不可能。 Swift 协议更像是(类 Rust)特征,它允许对协议实现进行动态调度。 Dart 没有这个,并且 Dart 扩展永远不会动态调度。
标签: dart interface extension-methods