在 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
参考资料 :
博客源码下载 :