内容简介:Dart 2.12 已于昨日发布,此版本带来了稳定的空类型安全声明 (sound null safety) 和 Dart FFI。空类型安全声明可帮助开发者避免 null 错误——这类错误往往很难被发现。FFI (Foreign Function Interface) 是一种...
Dart 2.12 已于昨日发布,此版本带来了稳定的空类型安全声明 (sound null safety) 和 Dart FFI。空类型安全声明可帮助开发者避免 null 错误——这类错误往往很难被发现。FFI (Foreign Function Interface) 是一种互操作性机制,开发者可通过它调用使用 C 语言编写的现成代码,例如调用 Windows Win32 API。
空类型安全声明 (sound null safety)
空类型安全声明 (sound null safety) 是自 Dart 2.0 引入声明类型系统 (sound type system) 以来,对 Dart 语言最大的补充。空类型安全 (null safety) 进一步增强了类型系统,让开发者在开发阶段即可捕获 null 错误,从而防止在生产环境出现崩溃,毕竟 null 错误是导致应用崩溃的常见原因。
Dart 的空类型安全支持基于三条核心原则:
- 默认情况下不可为空
- 逐步采用空类型安全声明
- 完全空类型安全声明
Dart FFI,用于将 C 类库与 Dart 集成
Dart FFI 让开发者能够利用 C 类库中现成的代码,以实现更好的可移植性,并且通过与高度调整的 C 语言代码集成以执行对性能要求较高的任务。从 Dart 2.12 开始,Dart FFI 已经脱离 beta 阶段,并被认为是稳定功能,可用于生产环境。此外还新增了嵌套结构和按值传递结构。
嵌套结构
C API 通常使用嵌套结构——即本身包含结构体的结构,例如以下示例:
struct Wheel {
int spokes;
};
struct Bike {
struct Wheel front;
struct Wheel rear;
int buildYear;
};
从 Dart 2.12 开始,FFI 也已支持嵌套结构。
按值传递结构
开发者可以在 C 语言代码中按引用和按值传递结构。FFI 以前仅支持按引用传递,但从 Dart 2.12 开始,开发者可以按值传递结构。这是两个同时通过引用传递和值传递的 C 函数的示例:
struct Link {
double value;
Link* next;
};
void MoveByReference(Link* link) {
link->value = link->value + 10.0;
}
Coord MoveByValue(Link link) {
link.value = link.value + 10.0;
return link;
}
发布公告还详细介绍了 FFI 的其他内容,详情点此查看。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- NPM包(模块)发布、更新、撤销发布
- 有赞灰度发布与蓝绿发布实践
- 【重磅发布】Linkis 0.10.0 版本发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
- 贝密游戏 0.7.0 发布,发布斗地主
- 【重磅发布】DataSphere Studio 0.9.0 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。