有人可以解释这个飞镖语法吗?这是在某处记录的吗?
abstract class FixedLengthListBase<E> =
ListBase<E> with FixedLengthListMixin<E>;
答案 0 :(得分:5)
这是声明命名的mixin应用程序的语法。引入in the "Mixins in Dart" article。
它们由一个特殊形式的类声明定义,它给它们一个名称,并声明它们等于mixin到超类的应用,通过with子句给出。
这几乎和写作一样
abstract class FixedLengthListBase<E> extends
ListBase<E> with FixedLengthListMixin<E>{}
技术差异在于,在这种情况下,FixedLengthListBase
不是mixin应用程序本身,而是隐式的,未命名的mixin应用程序的抽象子类ListBase<E> with FixedLengthListMixin<E>
答案 1 :(得分:3)
这是mixin application class
声明的形式。
classDefinition:
metadata abstract? class mixinApplicationClass
mixinApplicationClass:
identifier typeParameters? '=' mixinApplication ';'
mixin应用程序可用于扩展类;
或者,可以将类定义为mixin应用程序,如本节所述。
mixinApplicationClass:
identifier typeParameters? '=' mixinApplication ';'
abstract class FixedLengthListBase<E> =
ListBase<E> with FixedLengthListMixin<E>;
https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.trk07h8vrppk