函数

参数传值说明

第一种

1,有顺序传值
2,选传参数

    void calculateOne(int a, [int b = 1, int c]) {
        print('a=$a b=$b c=$c');
    }
    
    void main() {
        calculateOne(1);
        calculateOne(1, 2);
        calculateOne(1, 2, 3);
    }
    
    输出:
        a=1 b=1 c=null
        a=1 b=2 c=null
        a=1 b=2 c=3
    
    注意:
       ·  a 必传参数 其他选传参数
       ·  []内参数必须按照顺序传值
       ·  b 不传时,默认为1
       ·  c 不传时,默认为null
       ·  [] 后不可再加其他参数

第二种

1,无顺序传值
2,选传参数

    void calculateTwo(int a, {b, c = 0, @required d}) {
        print('a=$a b=$b c=$c d=$d');
    }
    
    输出:
        a=1 b=null c=0 d=null
        a=1 b=2 c=0 d=null
        a=1 b=2 c=3 d=4

    注意:
        ·  a 必传参数 其他选传参数
        ·  {}内参数可以无序传值
        ·  b 不传时,默认为null
        ·  c 不传时,默认为0
        ·  标记 @required 的参数为提醒用户为必传参数,不传编译器会给出警告提示

闭包的使用

    typedef Adder = int Function(int, int);

    Adder makeAdder(int sum) {
      return (a, b) => a + b + sum;
    }
    
    void main() {
      var adder=makeAdder(5);
      var value=adder(1,2);
      print("$value");
    }

你可能感兴趣的:(函数)