文章目录
一、独立主函数入口
二、可空类型判定
三、默认值设定
四、完整代码示例
五、 相关资源
一、独立主函数入口
在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 , 独立执行该 main 函数 ;
/// 可脱离 Flutter 环境独立执行的函数 void main(){ print("main"); }
main 函数左侧有两个三角的图标 , 单击该按钮 , 即可执行该 main 函数 ;
二、可空类型判定
可空类型判定 : 不确定对象是否为空 , 通过 ?. 的方式调用 , ( 类似于 Kotlin 的可空类型调用 ) , ? 的作用是先判定是否为空 , 如果为空 , 就终止调用 , 不会报空指针异常 ;
/// 可脱离 Flutter 环境独立执行的函数 void main(){ print("main"); Student student; /// 1. 安全调用 : 不确定对象是否为空 , 通过 ?. 的方式调用 /// ( 类似于 Kotlin 的可空类型调用 ) /// ? 的作用是先判定是否为空 , 如果为空 , 就终止调用 print("打印 student 名字 : ${student?.name}"); } class Student{ String name; int age; Student(this.name, this.age); }
执行结果 :
main 打印 student 名字 : null
三、默认值设定
使用 ?? 可以为某个空值设置一个默认值 , 如果某个值没有获取到 , 或者获取到为空 , 可以为该变量或表达式设置一个默认值 ;
student?.name??"Tom"
上述代码的作用是如果 student?.name 值为空 , 则返回 “Tom” 默认值 ;
代码示例 :
/// 2. 设置默认值 /// 使用 ?? 可以为某个空值设置一个默认值 /// 这里如果 student?.name 为空 , 则默认值是 "Tom" print("打印 student 名字 : ${student?.name??"Tom"}");
执行结果 :
打印 student 名字 : Tom
四、完整代码示例
完整代码示例 :
/// 可脱离 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); }
代码执行结果 :
main 打印 student 名字 : null 打印 student 名字 : Tom
五、 相关资源
参考资料 :
Flutter 官网 : https://flutter.dev/
Flutter 开发文档 : https://flutter.cn/docs ( 强烈推荐 )
官方 GitHub 地址 : https://github.com/flutter
Flutter 中文社区 : https://flutter.cn/
Flutter 实用教程 : https://flutter.cn/docs/cookbook
Flutter CodeLab : https://codelabs.flutter-io.cn/
Dart 中文文档 : https://dart.cn/
Dart 开发者官网 : https://api.dart.dev/
Flutter 中文网 ( 非官方 , 翻译的很好 ) : https://flutterchina.club/ , http://flutter.axuer.com/docs/
Flutter 相关问题 : https://flutterchina.club/faq/ ( 入门阶段推荐看一遍 )
博客源码下载 :
GitHub 地址 : https://github.com/han1202012/flutter_app_hello ( 随博客进度一直更新 , 有可能没有本博客的源码 )
博客源码快照 : https://download.csdn.net/download/han1202012/15463304( 本篇博客的源码快照 , 可以找到本博客的源码 )