gpt4 book ai didi

kotlin - Dart "sound null-safety"与 Kotlin 空安全有何不同?

转载 作者:行者123 更新时间:2023-12-03 14:28:32 27 4
gpt4 key购买 nike

This Dart official video指出 Dart 所谓的“声音空安全”优于 Kotlin 的空安全设计,因为它可以根据变量是否声明为可空来优化代码,而其他语言(我假设这是指包括 Kotlin 在内的语言)必须这样做运行时检查以确保空安全。
那么,Dart 做了哪些额外的优化?
它如何与不支持空安全的遗留代码库互操作,同时确保空安全?

最佳答案

So, what extra optimization does Dart do?


最基本的一种优化是在对数值类型执行计算时,编译器可以(在内部)将它们视为非引用类型(未装箱值)的原始类型。
这是为什么?
因为它们不能为空,因此没有必要将它们用作引用类型(装箱值)的数据。
这是为什么?
因为 null 在 Dart 中表示为 null 常量引用。
如果不需要引用这个常量,那为什么不使用值类型而不是引用类型呢?至少在生成的代码中,可以在编译时进行优化。
这一切都要归功于所谓的“强模式”。
强模式与不可空类型的结合允许你优化已经在编译阶段的代码,这对于 AOT 等模式非常重要,它们不允许在运行时优化代码,因为它在 RE (读取和执行)模式。

How does it interoperate with legacy codebases that null-safety is not supported while ensuring null safety?


在我看来,你应该把这个作为一个单独的问题来问。

关于kotlin - Dart "sound null-safety"与 Kotlin 空安全有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65122353/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com