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
только для чтения, унаследованное
Представление runtime-типа объекта.

Методы

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/Struct-class.html

Spec-Zone.ru

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