前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于dart中的late关键字,你了解多少?

关于dart中的late关键字,你了解多少?

作者头像
徐建国
发布2022-03-30 15:31:20
6210
发布2022-03-30 15:31:20
举报
文章被收录于专栏:个人路线

作者:坚果 华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

Dart 2.12 在变量中添加了late修饰符。这可以用于以下两种情况。

  • 将您的项目迁移到零安全。
  • 延时初始化一个变量。

1. 将您的项目迁移到零安全

在声明初始化的不可为空变量时可以使用late 修饰符。

例子

代码语言:javascript
复制
late String title;
void getTitle(){
title = 'Default';
print('Title is $title');
}

注意:

在使用变量之前的后期确保变量稍后必须初始化。否则在使用变量时可能会遇到运行时错误。

2.延时初始化一个变量

这种延时初始化在以下情况下很方便。

  • 该变量可能不需要,并且初始化它的成本很高。
  • 您正在初始化一个实例变量,它的初始化程序需要访问它。
代码语言:javascript
复制
// This is the program's only call to _getResult().
late String result = _getResult(); // Lazily initialized.

在上面的示例中,如果从未使用过变量,则永远不会调用成本更高的 _getResult() 函数。

假设_getResult()是计算该结果的非常重要的函数。但是,如果我们将它分配给任何变量而不延时,那么_getResult()即使我们不使用它,每次都会执行。

没有 late关键字

代码语言:javascript
复制
//START
String result = _getResult();
//END

在上面的代码中,result从未使用过,但_getResult()依旧会被执行。

使用 late关键字

代码语言:javascript
复制
//START
late String result = _getResult();
//END

在上面的代码中_getResult()没有被执行,因为变量result从未使用过发现了没,它是使用late修饰符声明的。

好的,关于late关键字,我们就了解到这儿,这也是对自己的知识体系的一个梳理。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大前端之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 将您的项目迁移到零安全
    • 例子
      • 注意:
      • 2.延时初始化一个变量
        • 没有 late关键字
          • 使用 late关键字
          相关产品与服务
          云开发 CloudBase
          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档