有人可以解释这个dart语法吗?这是在某处记录的吗?
abstract class FixedLengthListBase<E> =
ListBase<E> with FixedLengthListMixin<E>;
Run Code Online (Sandbox Code Playgroud)
这是用于声明命名的mixin应用程序的语法。在“ Dart中的Mixins”一文中对此进行了介绍。
它们由类声明的一种特殊形式定义,该类声明一个名称,并声明它们等于通过with子句给一个超类应用mixin。
(几乎)与写作相同
abstract class FixedLengthListBase<E> extends
ListBase<E> with FixedLengthListMixin<E>{}
Run Code Online (Sandbox Code Playgroud)
技术上的区别在于,在这种情况下,FixedLengthListBase它本身不是mixin应用程序,而是隐式,未命名mixin应用程序的抽象子类。ListBase<E> with FixedLengthListMixin<E>
这是一种声明形式mixin application class。
classDefinition:
metadata abstract? class mixinApplicationClass
mixinApplicationClass:
identifier typeParameters? '=' mixinApplication ';'
Run Code Online (Sandbox Code Playgroud)
mixin 应用程序可用于扩展类;
或者,可以将类定义为 mixin 应用程序,如本节中所述。
mixinApplicationClass:
identifier typeParameters? '=' mixinApplication ';'
Run Code Online (Sandbox Code Playgroud)
classDefinition:
metadata abstract? class mixinApplicationClass
mixinApplicationClass:
identifier typeParameters? '=' mixinApplication ';'
Run Code Online (Sandbox Code Playgroud)
https://www.dartlang.org/docs/spec/latest/dart-language-specification.html#h.trk07h8vrppk