Класс Expando< T extends Object>
Класс Expando позволяет добавлять новые свойства к объектам.
Не работает с числами, строками, булевыми значениями, null, dart:ffi указателями, dart:ffi структурами или dart:ffi объединениями.
Объект Expando не сохраняет добавленное свойство после того, как объект становится недоступным.
Поскольку вы всегда можете создать новое число, идентичное существующему, это означает, что свойство expando для числа никогда не может быть освобождено. Для предотвращения этого, свойства expando не могут быть добавлены к числам. То же самое относится к строкам, булевым значениям и null, которые также имеют литералы, оцениваемые в идентичные значения, когда они встречаются более одного раза.
Нет ограничений для других классов, даже для объектов констант времени компиляции. Будьте осторожны при добавлении свойств expando к константам времени компиляции, так как они будут существовать вечно.
Конструкторы
- Expando([String? name])
- Создаёт новый Expando. Необязательное имя используется только для отладки, и создание двух разных Expando с одинаковым именем даёт два Expando, которые работают с разными свойствами объектов, к которым они применяются.
Свойства
- hashCode → int только для чтения, унаследованное
- Код хэша для этого объекта.
- name → String? final
- Имя этого Expando, переданное в конструктор.
- runtimeType → Type только для чтения, унаследованное
- Представление типа объекта во время выполнения.
Методы
- noSuchMethod(
Invocation invocation) → dynamic унаследованное - Вызывается при обращении к несуществующему методу или свойству.
- toString(
) → String переопределённое - Переопределённый метод toString для Expando.
Операторы
- operator ==(
Object other) → bool унаследованное - Оператор равенства.
- operator [](
Object object) → T? - Получает значение свойства этого Expando для данного объекта.
- operator []=(
Object object, T? value) → void - Устанавливает значение свойства этого Expando для данного объекта на
value.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/Expando-class.html