我已經瀏覽了language documentation,看來Google Dart不支持mixins(接口中沒有方法體,沒有多重繼承,也沒有Ruby類模塊)。我是對的嗎?還是有另一種方式在Dart中具有mixin-like功能?Google Dart支持mixin嗎?
12
A
回答
9
我很高興向大家報告,現在回答是的!
mixin實際上只是子類和超類之間的三角洲。然後,您可以將三角洲「混合」到另一個班級。
例如,考慮這個抽象類:
abstract class Persistence {
void save(String filename) {
print('saving the object as ${toJson()}');
}
void load(String filename) {
print('loading from $filename');
}
Object toJson();
}
然後,您可以混合到這一點其它類,這樣就避免了繼承樹的污染。
abstract class Warrior extends Object with Persistence {
fight(Warrior other) {
// ...
}
}
class Ninja extends Warrior {
Map toJson() {
return {'throwing_stars': true};
}
}
class Zombie extends Warrior {
Map toJson() {
return {'eats_brains': true};
}
}
對混入的定義限制包括:
- 切不可聲明構造
- 超類對象
- 包含超
一些額外的閱讀沒有來電:
6
2
編輯:
的鏢隊現在已經released their proposal for Mixins,原來issue for Mixins was here。
它尚未實現,但在此期間,我已經發布了飛鏢一個可擴展的混合類型庫,其中包括廣受歡迎的Underscore.js功能實用程序庫的端口:https://github.com/mythz/DartMixins
相關問題
- 1. UWP支持Google的FileDataStore嗎?
- 2. Google App Engine支持xlrd嗎?
- 3. Google Glass GDK支持Intent.ACTION_CALL嗎?
- 4. 支持Dart for Google Endpoints中的查詢參數?
- 5. Google Dart JavaScript轉換器是否支持舊版瀏覽器?
- 6. 是否有官方計劃在Google App Engine上支持Dart?
- 7. 在Bootstrap 3.2中不再支持Grid類的Mixin不再支持?
- 8. Json4s支持與特性mixin的case類
- 9. Google登錄SDK iOS支持iOS6嗎?
- 10. Google Chrome支持XMLHttpRequest responseType =「document」嗎?
- 11. Google-Chart-angularjs支持「日期」類型嗎?
- 12. Google BigQuery支持日期分區嗎?
- 13. Google的OAuth2ForDevices不支持Drive API嗎?
- 14. Google導入仍支持HTML導入嗎?
- 15. Google BigQuery支持Parquet文件格式嗎?
- 16. Google雲Pub/Sub支持Letsencrypt證書嗎?
- 17. Google Chrome ARC支持URL方案嗎?
- 18. Google Analytics for Mobile支持事件嗎?
- 19. Dart支持使用現有的JavaScript庫嗎?
- 20. Dart是否支持W3C File API標準?
- 21. 任何支持git clone的dart包?
- 22. Dart mixin與聚合物可觀察區域可能嗎?
- 23. GreenHat支持ProtoBuf嗎?
- 24. Dart:無擴展名的mixin組合
- 25. AMP Google支持recaptcha?
- 26. Google chrome html5支持
- 27. Google Dart Regions?
- 28. 你支付Subversion支持嗎?
- 29. 不支持linux 3.7.1支持ext2嗎?
- 30. GNU Global支持objective-c嗎?
你可能要更新到當前正確的答案:) –