Класс 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.19.6/dart-ffi/Union-class.html