方法定义
类型 方法名() { return 返回值}
String getPerson(String name, int age) {
return "name=$name,age=$age";
}
箭头函数:
getPerson(name, age) => "name=$name,age=$age";
方法特性
- 方法也是对象,并且有具体类型Function
- 返回值类型、参数类型都可省略
- 箭头语法:=> expr 是{return expr} 缩写,只适用于一个表达式
- 方法都有返回值。如果没有指定,默认return null 是返回值
可选参数 / 默认参数值
- 可选命名参数:{param1,param2,...}
- 可选位置参数:[params1,params2,...]
- 如果存在具体参数,可选参数声明,必须在参数后面
getPerson(String name, {age, gender}) {
print("name=$name,age=$age,gender=$gender");
}
getPerson(String name, [age, gender]) {
print("name=$name,age=$age,gender=$gender");
}
getPerson(String name, {age = 30, gender="男"}) {
print("name=$name,age=$age,gender=$gender");
}
匿名方法
(参数1,参数2) {
方法体...
return 返回值
}
闭包
- 闭包是一个方法(对象)
- 闭包定义再其他方法内部
- 闭包能够访问外部方法内得局部变量,并持有其状态
void main() {
var func = a()
func()
func()
}
a() {
int count = 0
printCount() {
print(count++)
}
return printCount
}
a() {
int count = 0
return () {
print(count++)
}
}