Dart基础知识
- 程序入口
- 控制台输出
- 变量
- 检查null或零
- Functions
- 异步编程
- Futures
- async和await
程序入口
在Dart中, 每个app都必须有一个顶级的main() 函数作为应用程序的入口点。
// Dart
main() (
)
练一练Dart Pad。
Dart Pad是Dart的一个线上playground, 提供Dart线上playground还有:Online Dart Compiler。
控制台输出
要在Dart中打印到控制台,可使用print:
//Dart
print('Helloworld!') ;
变量
Dart是类型安全的 - 它使用静态类型检查和运行时的组合, 检查以确保变量的值始终与变量的静态值匹配类型。尽管类型是必需的, 但某些类型注释是可选的, 因为Dart会执行类型推断。
创建和分配变量
在Dart中, 变量必须是明确的类型或系统能够解析的类型。
//Dart
String name='dart'; //Explicitly typed as a string.
var other Name='Dart'; //Inferred string.
//Both are acceptable in Dart.
默认值
在Dart中, 未初始化的变量的初始值为null。
注意:数字在Dart中也被当成对象, 所以只要是带有数字类型的未初始化变量的值都是"null"。
//Dart
var name; // ==null
int x; // ==null
检查null或零
在Dart中, 只有布尔值true
被视为true。
void main() {var myNull = null;if(myNull == null){print("myNull == null");}var zero = 0;if(zero == 0){print("zero == 0");}
}
Dart null 检查最佳实践
看一下下面预计的执行结果:
print(null??false);print(false??11);print(true??false);
Functions
//Dart
fn(){return true;
}//can also be written as
bool fn(){return true;
}
异步编程
Futures
Dart支持单线程执行,Dart使用Future来表示异步操作:
_getIpAddress(){final url = "https://www.baidu.com";httpRequest.request(url).then((values){print(values);}).catchError((error) => print(error));}
async和await
async
函数声明定义了一个异步函数。async函数返回一个Future, 函数的主体是稍后执行。
_getIpAddress() async{final url = "https://www.baidu.com";var request = await HttpRequest.request(url);String ip = json.decode(request.responseText) ['origin'];print(ip);}