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);
}