【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
一、独立主函数入口
在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 , 独立执行该 main 函数 ;
/// 可脱离 Flutter 环境独立执行的函数
void main(){
print("main");
}
- 1
- 2
- 3
- 4
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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
执行结果 :
main
打印 student 名字 : null
- 1
- 2
三、默认值设定
使用 ?? 可以为某个空值设置一个默认值 , 如果某个值没有获取到 , 或者获取到为空 , 可以为该变量或表达式设置一个默认值 ;
student?.name??"Tom"
- 1
上述代码的作用是如果 student?.name 值为空 , 则返回 “Tom” 默认值 ;
代码示例 :
/// 2. 设置默认值
/// 使用 ?? 可以为某个空值设置一个默认值
/// 这里如果 student?.name 为空 , 则默认值是 "Tom"
print("打印 student 名字 : ${student?.name??"Tom"}");
- 1
- 2
- 3
- 4
执行结果 :
打印 student 名字 : Tom
- 1
四、完整代码示例
完整代码示例 :
/// 可脱离 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);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
代码执行结果 :
main
打印 student 名字 : null
打印 student 名字 : Tom
- 1
- 2
- 3
五、 相关资源
参考资料 :
- 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( 本篇博客的源码快照 , 可以找到本博客的源码 )
文章来源: hanshuliang.blog.csdn.net,作者:韩曙亮,版权归原作者所有,如需转载,请联系作者。
原文链接:hanshuliang.blog.csdn.net/article/details/114064605
- 点赞
- 收藏
- 关注作者
评论(0)