Dart笔记(二)函数

2019-05-19  本文已影响0人  啦啦哇哈哈

方法也是对象,Function
返回值类型、参数类型可省略
箭头语法: = > expr 也就是{return expr} 只适用于一个表达式,方法都有返回值,如果没有指定则默认return null

//可选命名参数
//用的大括号
//大括号中俩参数是可以不传入的
//传的时候指定参数名对应传入
printPerson(String name, {int age, String gender}){
    print("name = $name, age = $age, gender = $gender");
}
//可选位置参数
//用的中括号
//传的时候是按位置传的
printPerson2(String name, [int age, String gender]){
    print("name = $name, age = $age, gender = $gender");
}
void main(){
    printPerson("zhang");
    printPerson("zhang",age:20)
    printPerson("zhang",gender:"Male");
    printPerson2("zhang");
    printPerson2("zhang",20)
    printPerson2("zhang",20,"Male");

}

注意的是,普通参数一定在可选参数前面

void main(){
    var func = printHello;//Function func = printHello
    func();//调用时候只需要加个括号就可以!
}

void printHello(){
    print("Hello");
}

2.可以作为参数传递给其他方法

void main(){
    var list2 = ["h","e","l"];
    pirnt(listTimes(list2, times));
}

List listTimes(List list, String times(str)){
    for(var index = 0; index < list.length; index++){
        list[index] = times(list[index]);
    }
    return list;
}

String times(str){
    return str * 3;
}
    (参数1, 参数2, ....){
        方法体...
        return 返回值
    }

1.可以赋值给一个变量,通过变量进行调用
一个极端的例子。

    void main(){
        var func = (str){
            print("Hello --- $str");
        };
        func(30);
        ((){
            print("Test");
        }).();
    }

2.可以在其它方法中直接调用或者传递给其他方法
上面那个times例子就可以改成

    print(listTimes(list2, (str){return str * 3}));
上一篇 下一篇

猜你喜欢

热点阅读