前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )

【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )

作者头像
韩曙亮
发布2023-03-28 21:17:39
发布2023-03-28 21:17:39
66600
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、独立主函数入口


在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 , 独立执行该 main 函数 ;

代码语言:javascript
代码运行次数:0
复制
/// 可脱离 Flutter 环境独立执行的函数
void main(){
  print("main");
}

main 函数左侧有两个三角的图标 , 单击该按钮 , 即可执行该 main 函数 ;

二、可空类型判定


可空类型判定 : 不确定对象是否为空 , 通过 ?. 的方式调用 , ( 类似于 Kotlin 的可空类型调用 ) , ? 的作用是先判定是否为空 , 如果为空 , 就终止调用 , 不会报空指针异常 ;

代码语言:javascript
代码运行次数:0
复制
/// 可脱离 Flutter 环境独立执行的函数
void main(){
  print("main");

  Student student;
  /// 1. 安全调用 : 不确定对象是否为空 , 通过 ?. 的方式调用
  /// ( 类似于 Kotlin 的可空类型调用 )
  /// ? 的作用是先判定是否为空 , 如果为空 , 就终止调用
  print("打印 student 名字 : ${student?.name}");

}

class Student{
  String name;
  int age;
  Student(this.name, this.age);
}

执行结果 :

代码语言:javascript
代码运行次数:0
复制
main
打印 student 名字 : null

三、默认值设定


使用 ?? 可以为某个空值设置一个默认值 , 如果某个值没有获取到 , 或者获取到为空 , 可以为该变量或表达式设置一个默认值 ;

代码语言:javascript
代码运行次数:0
复制
student?.name??"Tom"

上述代码的作用是如果 student?.name 值为空 , 则返回 “Tom” 默认值 ;

代码示例 :

代码语言:javascript
代码运行次数:0
复制
  /// 2. 设置默认值
  /// 使用 ?? 可以为某个空值设置一个默认值
  /// 这里如果 student?.name 为空 , 则默认值是 "Tom"
  print("打印 student 名字 : ${student?.name??"Tom"}");

执行结果 :

代码语言:javascript
代码运行次数:0
复制
打印 student 名字 : Tom

四、完整代码示例


完整代码示例 :

代码语言:javascript
代码运行次数:0
复制
/// 可脱离 Flutter 环境独立执行的函数
void main(){
  print("main");

  Student student;
  /// 1. 安全调用 : 不确定对象是否为空 , 通过 ?. 的方式调用
  /// ( 类似于 Kotlin 的可空类型调用 )
  /// ? 的作用是先判定是否为空 , 如果为空 , 就终止调用
  print("打印 student 名字 : ${student?.name}");

  /// 2. 设置默认值
  /// 使用 ?? 可以为某个空值设置一个默认值
  /// 这里如果 student?.name 为空 , 则默认值是 "Tom"
  print("打印 student 名字 : ${student?.name??"Tom"}");

}

class Student{
  String name;
  int age;
  Student(this.name, this.age);
}

代码执行结果 :

代码语言:javascript
代码运行次数:0
复制
main
打印 student 名字 : null
打印 student 名字 : Tom

五、 相关资源


参考资料 :

博客源码下载 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、独立主函数入口
  • 二、可空类型判定
  • 三、默认值设定
  • 四、完整代码示例
  • 五、 相关资源
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档