文章目录
- 一、独立主函数入口
- 二、可空类型判定
- 三、默认值设定
- 四、完整代码示例
- 五、 相关资源
一、独立主函数入口
在 dart 文件中声明 main() 函数 , 即可脱离 Flutter 环境 , 独立执行该 main 函数 ;
代码语言:javascript复制/// 可脱离 Flutter 环境独立执行的函数
void main(){
print("main");
}
main 函数左侧有两个三角的图标 , 单击该按钮 , 即可执行该 main 函数 ;
二、可空类型判定
可空类型判定 : 不确定对象是否为空 , 通过 ?. 的方式调用 , ( 类似于 Kotlin 的可空类型调用 ) , ? 的作用是先判定是否为空 , 如果为空 , 就终止调用 , 不会报空指针异常 ;
代码语言:javascript复制/// 可脱离 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复制main
打印 student 名字 : null
三、默认值设定
使用 ?? 可以为某个空值设置一个默认值 , 如果某个值没有获取到 , 或者获取到为空 , 可以为该变量或表达式设置一个默认值 ;
代码语言:javascript复制student?.name??"Tom"
上述代码的作用是如果 student?.name 值为空 , 则返回 “Tom” 默认值 ;
代码示例 :
代码语言:javascript复制 /// 2. 设置默认值
/// 使用 ?? 可以为某个空值设置一个默认值
/// 这里如果 student?.name 为空 , 则默认值是 "Tom"
print("打印 student 名字 : ${student?.name??"Tom"}");
执行结果 :
代码语言:javascript复制打印 student 名字 : Tom
四、完整代码示例
完整代码示例 :
代码语言:javascript复制/// 可脱离 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复制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( 本篇博客的源码快照 , 可以找到本博客的源码 )