Dart 在线编辑器 https://dartpad.dev/?null_safety=true
main()
在 Dart 中,每个 app 都必须有一个顶级的 main() 函数作为应用程序的入口点。
void main() {
for (int i = 0; i < 5; i++) {
print('hello ${i + 1}');
}
}
运行结果如下:
hello 1
hello 2
hello 3
hello 4
hello 5
控制台输出 - print:
print('hello world');
变量
Dart 是类型安全的,它使用静态类型检查和运行时的组合,检查以确保变量的值始终与变量的静态之匹配类型。尽管类型是必须的,但某些类型注释是可选的,因为 Dart 会执行类型推断。
创建和分配变量
在 Dart 中,变量必须是明确的类型或者系统能够解析的类型。
String name = 'dart';
var otherName = 'Dart';
print(name);
print (otherName);
默认值
在 Dart 中,未初始化的变量的初始值为 null
数字在 Dart 中也被当成对象,所以只要是带有数字类型的未初始化变量的值都是“null”
检查 null 或零
在 Dart 中,1 或任何非 null 对象的值被视为 true。
var myNull = null;
if(myNull == null) {
print('use "== null" to check null');
}
var zero = 0;
if(zero == 0) {
print('use "== 0" to check null');
}
运行结果如下:
use "== null" to check null
use "== 0" to check null
Dart null 检查最佳实践
从 Dart 1.12开始,null-aware 运算符可以帮助我们做 null 检查。
null-aware函数
bool fn() {
return true;
}
异步编程
Dart 支持单线程执行,使用 Future 来表示异步操作。
_getInAddress() {
final url = 'https://httpbin.org/ip';
HttpRequest.request(url).then((value) {
print(json.decode(value.responseText)['origin']);
}).catchError(error) => print(error);
}
async 和 await
在 Dart 中,async 函数返回一个 Future,函数的主体是稍后执行。await 运算符用于等待 Future。
网友评论