Function
文字描述:



所以这里 可以直接写 getPerson(name, age)
void main(){var myData = getPerson('dwh', 19);print(myData);}getPerson(String name, int age){return "myName is $name, age is $age";}//myName is dwh, age is 19
箭头语法
void main(){var myData = getPerson('dwh', 19);print(myData);}getPerson(name, age) => "myName is $name, age is $age";//myName is dwh, age is 19
这两个函数其实是等同的
可选参数
根据名称定义变量
定义可选参数
使用 {pa1,pa2…} 这是根据名称来调用的
必选参数必选写在可选参数的前面
void main(){var myData = getPerson('dwh');print(myData);}getPerson(name, {age, gender}){return "myName is $name, age is $age, gender is $gender";}//后面两个是可选参数,第一个是必选//myName is dwh, age is null, gender is null
调用可选参数
使用 :
void main(){var myData = getPerson('dwh', age: 19, gender: '男');print(myData);}getPerson(name, {age, gender}){return "myName is $name, age is $age, gender is $gender";}//myName is dwh, age is 19, gender is 男
根据位置定义变量
void main(){var myData = getPerson('dwh', 18);print(myData);}getPerson(name, [age, gender]){return "myName is $name, age is $age, gender is $gender";}//其中name是必选 之后两个可选 但是调用的时候需要按照位置来,//myName is dwh, age is 18, gender is null
默认参数值
void main(){var myData = getPerson('dwh', 18);print(myData);}getPerson(name, [age, gender = '男']){return "myName is $name, age is $age, gender is $gender";}//其中name是必选 之后两个可选 但是调用的时候需要按照位置来,//myName is dwh, age is 18, gender is 男
方法可以作为变量调用
比如forEach就是
void main(){var list = ['h', 'i'];var myData = listTimes(list, times);print(myData);}listTimes(List list, time3(str)){for(var index = 0; index < list.length; index++){list[index] = time3(list[index]);}return list;}times(str) => str*3;//[hhh, iii]
匿名方法
描述

特性
1、可以赋值给变量,通过变量进行调用
2、可以在其他方法中直接调用,或传递给其他方法
栗子
void main(){((){print('这是一个匿名方法,后面的括号直接调用,但是不建议这样用');}) ();}//这是一个匿名方法,后面的括号直接调用,但是不建议这样用
void main(){var func1 = (str){print('hi--$str');};func1('ncuhomers');}//hi--ncuhomers
void main(){var list = ['h', 'i', '6'];var myData = listTimes(list, (str){return str * 3;});//直接传入一个匿名方法print(myData);}listTimes(List list, func(str)){for(var index = 0; index < list.length; index++){list[index] = func(list[index]);}return list;}//[hhh, iii, 666]
闭包
描述
闭包是一个方法(对象)
闭包定义在其他方法的内部
闭包能够访问外部方法的局部变量
