作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个之前写的 Flutter 应用程序 null safety was introduced to Dart .
我听说过 空安全迁移工具 并且想知道如何使用它默认将我的代码从 NNBD 之前转换为不可为空。
最佳答案
你至少需要 Dart 2.9
.在撰写本文时,您可以使用 2.9.0-10.0.dev
,即将以下 SDK 约束放入您的 pubspec.yaml
:
environment:
sdk: ">=2.9.0-10.0.dev <3.0.0"
/*?*/
&
/*!*/
)
/*?*/
提示意味着某些内容应该明确可以为空。
/*!*/
意味着某些东西应该是不可为空的。
?
,
!
, 和
_
编辑。
?
在迁移后使类型可以为空。
_
使其不可为空(意味着没有字符被更改,因为不可为空是
默认值 )。
!
使表达式不可为空。
2.9
自带
an nnbd_migration
package .
pub get
或 flutter pub get
使用 flutter 时。 (请注意,在撰写本文时,尚不支持 Flutter SDK)dart migrate
. (请注意,在撰写本文时,我需要使用 --skip-pub-outdated
) http://localhost:<port>/<project path>?authToken=<token>
)。您应该会看到如下内容:Add /*?*/ hint
或
Add /*!*/ hint
如上所述(您也可以在 IDE 中手动添加它们)。
Rerun From Sources
很多。这将应用您添加的新提示以及您对代码所做的任何其他编辑,并生成新的编辑。这样做直到所有编辑看起来都正确。?
, !
,或空白。 git commit
)。/*?*/
和 /*!*/
提示,尚未迁移。 Apply Migration
:这将应用建议的编辑并删除所有提示。pub get
或 flutter pub get
然后运行)。关于flutter - 如何将 Dart 代码迁移到不可为空 (NNBD)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62148950/
我是一名优秀的程序员,十分优秀!