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