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]
闭包
描述
闭包是一个方法(对象)
闭包定义在其他方法的内部
闭包能够访问外部方法的局部变量