Expando 允许向对象添加新属性。
不适用于数字、字符串、布尔值、记录、null
、dart:ffi
指针、dart:ffi
结构体或 dart:ffi
联合。
Expando 不会在对象变为不可访问后保留添加的属性值。
由于您始终可以创建一个与现有数字完全相同的新数字,这意味着数字上的 expando 属性永远无法释放。为了避免这种情况,不能向数字添加 expando 属性。相同的论点也适用于字符串、布尔值和 null
,它们在出现多次时也会评估为相同的值。此外,由于记录没有定义良好的持久身份,因此不能向记录添加 expando 属性。
对其他类没有限制,即使是编译时常量对象也是如此。如果向编译时常量添加 expando 属性,请小心,因为它们将永远存在。
构造函数
属性
方法
-
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时调用。inherited
-
toString(
) → String - Expando toString 方法覆盖。override
运算符
-
operator ==(
Object other) → bool - 相等运算符。inherited
-
operator [](
Object object) → T? - 获取给定对象上此扩展属性的值。
-
operator []=(
Object object, T? value) → void - 将此扩展属性在给定对象上的值设置为
value
。