dart 基础

变量声明

//可以省略String这个类型声明 final str = "hi world"; //final String str = "hi world"; const str1 = "hi world"; //const String str1 = "hi world";

函数

bool isNoble(int atomicNumber) { return _nobleGases[atomicNumber] != null; }

bool isNoble (int atomicNumber)=> _nobleGases [ atomicNumber ] != null ;

var say = (str){ print(str); }; say("hi world");

void execute(var callback) { callback(); } execute(() => print("xxx"))

String say(String from, String msg, [String device]) { var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } return result; }

测试=》say('Bob', 'Howdy'); //结果是: Bob says Howdy

测试=> say('Bob', 'Howdy', 'smoke signal'); //结果是:Bob says Howdy with a smoke signal

//设置[bold]和[hidden]标志 void enableFlags({bool bold, bool hidden}) { // ... }

enableFlags(bold: true, hidden: false);

注意,不能同时使用可选的位置参数和可选的命名参数

异步支持

// 延迟2s返回结果:"hi world!" Future.delayed(new Duration(seconds: 2),(){ return "hi world!"; }).then((data){ // 执行成功走这 print(data); }).catchError((e){ //执行失败会走到这里
print(e); }).whenComplete((){ //无论成功或失败都会走到这里 }); // wait等待结果,4s后看到hello world Future.wait([ // 2秒后返回结果
Future.delayed(new Duration(seconds: 2), () { return "hello"; }), // 4秒后返回结果
Future.delayed(new Duration(seconds: 4), () { return " world"; }) ]).then((results){ print(results[0]+results[1]); }).catchError((e){ print(e); });

// 登陆之后保存用户信息 task() async { try{ String id = await login("alice","******"); String userInfo = await getUserInfo(id); await saveUserInfo(userInfo); //执行接下来的操作
} catch(e){ //错误处理
print(e);
}
}

Stream

kkdemian
hyperliquid