Dart基础语法<五> 参数

本节主要记录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 来指定命名参数,顺序可以自由写,也可以设置默认参数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前文链接: Dart简介 Dart语法(上) 内容: 函数(方法)函数定义及各类函数;函数参数;闭包 面向对象定义...
    玉圣阅读 7,380评论 0 2
  • Verilog HDL简介 Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统...
    JackHCC阅读 8,529评论 0 9
  • 基础语法 [TOC] 官方文档 中文文档 变量 dart是强类型 var 由类型推断确定变量类型 dynamic ...
    云佾风徽阅读 4,048评论 0 0
  • --- 学习目标: - 掌握编程的基本思维 - 掌握编程的基本语法 typora-copy-images-to: ...
    YFBigHeart阅读 4,705评论 0 2
  • 本节主要记录Dart方法中的 普通方法 一等方法 普通方法 普通方法在用法上和java类似。 支持忽略类型写法(但...
    果汁味Studio阅读 3,405评论 0 3

友情链接更多精彩内容