美文网首页
Dart基础语法<五> 参数

Dart基础语法<五> 参数

作者: 果汁味Studio | 来源:发表于2020-12-27 09:49 被阅读0次

    本节主要记录Dart方法参数中的

    • 可选位置参数
    • 默认参数
    • 可选命名参数

    java中经常会出现各种重载函数

    void f1(int i, int j) {}
    void f1(int i){
      f1(i, 0);
    }
    

    但一旦业务要求可能需要大量重复的定义。Dart提供了可选参数实现方法的灵活调用。
    注:定义方法时可以有必需可选两种类型参数。 必需参数需要在参数列表前面, 然后再定义可选参数。

    可选位置参数

    Dart中,可用可选位置参数灵活处理。被中括号[]括起来的方法参数,即为可选位置参数,传值时按照参数位置顺序传递。

    void f1([int i, int j]) {
      print(i);
      print(j);
    }
    
    void main() {
      f1();
      f1(1);
      f1(1, 2);
    }
    
    • f1() 无输入值,故输出结果为null null
    • f1(1) 输入值i=1,j无输入参数,故输出结果为1 null
    • f1(1, 2) 输入值i=1,j=2,故输出结果为1 2

    注:传值要按照顺序,不能跨过ij先传值。

    默认参数

    上述例子中,会出现值为null的情况。实际开发中,在定义方法时,可选参数可用 = 定义默认值。

    void f1([int i = 100, int j = 99]) {
      print(i);
      print(j);
    }
    
    void main() {
      f1();
      f1(1);
      f1(1, 2);
    }
    
    • f1() 无输入值,故输出结果均为默认值100 99
    • f1(1) 输入值i=1,j无输入参数(则为默认值),故输出结果为1 99
    • f1(1, 2) 输入值i=1,j=2,故输出结果为1 2
    可选命名参数

    用大括号 {} 将方法的参数括起来则变成可选命名参数

    void f1({int i = 99, int j = 100}) {
      print(i);
      print(j);
    }
    
    void main() {
      f1();
      f1(i: 30);
      f1(j: 50);
      f1(i: 30, j: 50);
      f1(j: 50, i: 30);
    }
    
    • f1() 无输入值,故输出结果均为默认值99 100
    • f1(i: 30) 输入值i=30,j无输入参数(则为默认值),故输出结果为30 100
    • f1(j: 50) i无输入参数(则为默认值),输入值j=50,故输出结果为99 50
    • f1(i: 30, j: 50)和 f1(j: 50, i: 30),均表示输入值i=30,输入值j=50,输出结果为30 50

    注:调用方法时,需要使用类键值对形式 paramName: value 来指定命名参数,顺序可以自由写,也可以设置默认参数。

    相关文章

      网友评论

          本文标题:Dart基础语法<五> 参数

          本文链接:https://www.haomeiwen.com/subject/eaxvnktx.html