Spec-Zone.ru › Dart 2

dart:ffi

Класс Struct

Супертип всех типов структур FFI.

Типы структур FFI должны наследовать этот класс и объявлять поля, соответствующие базовой нативной структуре.

Объявления полей в объявлении подкласса Struct автоматически получают реализации методов установки и получения, которые обращаются к полю нативной структуры в памяти.

Все объявления полей в объявлении подкласса Struct должны иметь тип int или double и быть аннотированы типом NativeType, представляющим нативный тип, либо иметь тип Pointer. Например:

typedef struct {
 int a;
 float b;
 void* c;
} my_struct;
class MyStruct extends Struct {
  @Int32()
  external int a;

  @Float()
  external double b;

  external Pointer<Void> c;
}

Все объявления полей в объявлении подкласса Struct должны быть помечены external. Нельзя создавать экземпляры класса — можно лишь указывать на существующую нативную память, поэтому нет памяти, в которой можно было бы хранить ненативные поля. Внешние поля также нельзя инициализировать конструкторами, поскольку объект Dart не создаётся.

Экземпляры подкласса Struct имеют ссылочную семантику и размещаются в нативной памяти или типизированных данных. Их можно выделить в памяти, загрузить из Pointer или создать с помощью вызовов FFI либо обратных вызовов. Их нельзя создать с помощью генерирующего конструктора.

Наследование
  • Object
  • NativeType
  • Struct
Аннотации
  • @Since('2.12')

Конструкторы

Struct()
Создаёт ссылку на 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/Struct-class.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API