address 属性
底层数据的内存地址。
形式为 expression.address
的表达式表示此 address
,只能在调用叶 Native 外部函数时作为整个参数表达式出现。
示例
@Native<Void Function(Pointer<Uint8>)>(isLeaf: true)
external void myFunction(Pointer<Uint8> pointer);
void main() {
final list = Uint8List(10);
myFunction(list.address);
}
.address
之前的表达式像赋值语句的左侧一样被评估,得到对表达式背后的存储的访问权限,这既可以用于读取也可以用于写入。然后 .address
给出对该存储的本地指针。
在调用叶 Native 外部函数时,.address
的评估发生在调用本地代码之前。这确保 Dart 垃圾回收器不会移动地址指向的对象。
实现
external Pointer<Uint8> get address;