gpt4 book ai didi

dart - 为什么 Dart 不允许 mixin 继承?

转载 作者:行者123 更新时间:2023-12-04 21:17:36 25 4
gpt4 key购买 nike

Dart 不像 Scala 那样支持真正的 mixin 组合。

library some_lib;

// mixin A
abstract class A {
String get a => 'A';
}

// mixin B
abstract class B extends Object with A {
String get b => a + 'B';
}

客户使用情况

import 'some_lib.dart';

// client usage
class Client extends Object with B {
String get c => b + 'C';
}

void main(){
print(new Client().c); // should print ABC
}

Dart 分析器提示说 “类 'B' 不能用作 mixin,因为它扩展了 Object 以外的类”

我知道你会回复说以下工作正常:

class C extends Object with A, B {
String get c => a + b;
}

但是我正在设计一个库,它将导出一些共享一些通用功能(由基本 mixin 提供)的 mixin,这与他们的行为相关,但与我的图书馆客户无关。

如果可能的话,我什至想让这个基本的 mixin 成为私有(private)的。

对此有什么想法吗?

最佳答案

这方面的规范仍在不断发展。我认为他们打算在 future 的版本中实现完全基于 mixin 的继承。

这就是我从 Gilad Bracha( Dart 规范背后的大脑)谈话中收集到的内容(快速转发到相应部分):http://youtu.be/yXY5bGlhxlw?t=18m42s

关于dart - 为什么 Dart 不允许 mixin 继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com