Класс Union
Базовый тип для всех типов объединений FFI.
Типы объединений FFI должны наследоваться от этого класса и объявлять поля, соответствующие базовому нативному объединению.
Объявления полей в подклассе Union автоматически получают реализацию геттера и сеттера, которые обращаются к полю нативного объединения в памяти.
Все объявления полей в подклассе Union должны иметь тип int или double и быть аннотированы NativeType, представляющим нативный тип, или должны быть типа Pointer. Например:
typedef union {
int a;
float b;
void* c;
} my_union; class MyUnion extends Union {
@Int32()
external int a;
@Float()
external double b;
external Pointer<Void> c;
} Все объявления полей в подклассе Union должны быть помечены external. Вы не можете создавать экземпляры этого класса, только указывать на существующую нативную память, поэтому нет памяти для хранения полей, отличных от нативных. Внешние поля также не могут быть инициализированы конструкторами, поскольку не создается объект Dart.
Экземпляры подкласса Union имеют семантику ссылок и поддерживаются нативной памятью. Они могут быть выделены посредством выделения или загружены из Pointer, но не могут быть созданы конструктором.
- Наследование
-
- Object
- NativeType
- Union
- Аннотации
-
- @Since('2.14')
Конструкторы
- Union()
- Создает ссылку на nullptr.
Свойства
- hashCode → int только для чтения, унаследованное
- Код хеширования этого объекта.
- runtimeType → Type только для чтения, унаследованное
- Представление типа объекта во время выполнения.
Методы
- noSuchMethod(
Invocation invocation) → dynamic унаследованное - Вызывается при доступе к несуществующему методу или свойству.
- toString(
) → String унаследованное - Строковое представление этого объекта.
Операторы
- operator ==(
Object other) → bool унаследованное - Оператор равенства.
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-ffi/Union-class.html