【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )
文章目录
- 一、独立主函数入口
- 二、可空类型判定
- 三、默认值设定
- 四、完整代码示例
- 五、 相关资源
一、独立主函数入口
在 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( 本篇博客的源码快照 , 可以找到本博客的源码 )
【Flutter】Dart 技巧 ( 独立主函数入口 | 可空类型判定 | 默认值设定 )相关推荐
- 编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac)
编写函数 int fac(int x)计算 x!的值.在主函数中输入 n 和 m 的值,通过调用函数 fac 计算m Cn 的值(要求分别用递归和非递归的方法编写函数 fac) 递归: #includ ...
- UE4 C++入门之路4-PostInitProperties函数详解(设置属性默认值的四种方法)
PostInitProperties函数详解 前言 设置属性默认值的四种方法 一 声明时赋值 二 构造函数赋值 三 构造函数初始化列表 四 PostInitProperties 前言 也许在工作或者学 ...
- python主函数入口_python类 + mian()函数
main函数 import sklearn import numpy as np print(sklearn) # print("hello") ra = np.random.ra ...
- 【强烈推荐】Java主函数入口,此篇文章极短极细,慎入
祝大家早日学有所成,拿到满意[offer],快速[升职加薪],出任CEO,迎娶白富美,走上人生巅峰. 附带一张白富美的照片 怎么样是不是很短,是不是很细hhhh public class MainTe ...
- python调用函数传参时、有默认值的在中间 报错了_python的大坑:使用空列表作为默认参数,让我怀疑遇到了灵异代码...
在python中,不要使用列表或者其他可变类型的数据容器作为默认参数.否则你很可能会遇到奇奇怪怪的问题. 如果你在调用某一个函数时,传了同样的参数,手动执行,每次结果都正确.但是用循环遍历重复多次执行 ...
- JavaScript中的函数中arguments、参数、默认值和表达式以及箭头函数
箭头函数: 箭头函数虽然语法简洁.但也有很多场合不适用.箭头函数不能使用arguments.super和new.target,也不能用作构造函数.此外箭头函数也没有prototype属性. 1. 函数 ...
- 数据的完整性(正确性和准确性):分类-实体完整性:主键约束、唯一约束、自动增长列。域完整性-非空约束、默认值约束、检查约束。引用完整性-一对一、一对多、多对多
文章目录 1 数据的完整性作用 2 完整性的分类 2.1 实体完整性 2.1.1 主键约束 primary key 2.1.2 唯一约束 unique 2.1.3 自动增长列 auto_increme ...
- python主函数入口_Python 入口函数(菜鸟入门)
Python 入口函数(菜鸟入门) 最近在组内研究专项项目,其中的一个现有工具是用 Python 开发的,我的目标是对这款工具的流程进行优化.虽然可以找到对应的开发者了解现有流程,然后结合我的研究提出 ...
- 实验六(函数) 2.编写函数 int fac(int x)计算 x!的值。在主函数中输入 n 和 m 的值,通过调用函数 fac 计算Cnm 的值(要求分别用递归和非递归的方法编写函数 fac)。
(Cnm是m在上n在下) 非递归法: #include<stdio.h>long fac(long);int main(){long m,n,a=1,b;scanf("%ld%l ...
最新文章
- MongoDB update修改器: 针对Fields的$修改器 $inc $set $unset
- python+xlrd+xlwt操作excel
- 【算法】常用的排序方法
- 计算机主机接线视频教程,电脑主板跳线怎么接?电脑机箱与主板跳线接法图解教程...
- ROC曲线与AUC以及LIFT
- array variable used in printf function
- 捷信达酒店管理系统密码修改SQL语句
- C语言实现二叉树的各种遍历及求解深度
- VS Newtonsoft的引用问题
- 使用git向远程库发布项目和下载项目步骤,结合gitee部署远程库,HTTPS\SHH上传下载情况详解
- python实现单例模式的几种方法实例详解
- html文字段落i排版,i排版怎么修改字体 字体排版详细介绍
- 面经分享:网友问我,怎样才能在谷歌匹兹堡办公室里写代码?上篇
- ajax到底怎么读呢
- 【无标题】关于CTF的相关知识
- 移动硬盘做PE启动盘的技巧
- Unity3D中MonoDevelop无法使用
- 微信小程序制作天气查询系统
- python项目实战:实现游戏敏感词汇过滤器
- 第13课:生活中的克隆模式——给你一个分身术