Flutter基础之Dart语言入门
函数
Dart是一种真正的面相对象的语言,函数即是对象,类型是Function,即可赋值给变量或作为参数传递给其他函数
bool isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
dart函数声明如果没有显式声明返回值类型时会默认当做dynamic处理,注意函数的返回值没有类型推断
typedef bool CALLBACK();
//不指定返回类型,此时默认为dynamic,不是bool
isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
void test(CALLBACK cb){
print(cb());
}
//报错,isNoble不是bool类型
test(isNoble);
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;
}
定义函数时,使用{param1, param2 , …},可用于指定命名参数,
//设置[bold]和[hidden]标志
void enableFlags({bool bold, bool hidden}) {
// ...
}
调用函数时,可以使用指定命名参数,如paramName: value
enableFlags(bold: true, hidden: false);
可选命名参数在Flutter中使用非常频繁。
匿名函数 匿名方法
(参数1,参数2,...){
方法体...
return返回值
}
匿名方法特性
可赋值给变量,通过变量进行调用
可在其他方法中直接调用或传递给其它方法