Dart 中参数的声明方式

2024-11-02  本文已影响0人  lsj980Ya
可空和可选的区别

可空: 可以传null、也可以传具体的值、但是必须传
可选,可传、可不传 命名可选参数包裹在{}中,位置可选参数包裹在[]中,通过设置非空默认值、或可空修饰符?来实现

位置参数

// 参数是必传的
bool name(int a, int? b /*哪怕这里的b为可空*/) {
  return false;
}
name(10, null);
name(10, 10);

可选位置参数

// a:必传的
// b、c 可选位置参数、设置为可选有两种方式:1添加非空默认值、2设置为可空
bool name(int a, [int b = 10, int? c]) {
  return false;
}
name(10)
name(10 20)
name(10, 20, 30)


// Error、这种不加非空默认值,也不加可空修饰符,编译器会直接报错
bool name(int a, [int b, int c]) {}

命名参数

命名参数默认是可选的,除非你声明了required

// 1 添加 required 修饰、改为必传参数
bool name({ required int a }) {
  return false;
}

// 2 b、c 可选命名参数、设置为可选有两种方式:1添加非空默认值、2设置为可空
bool name({ required int a, int b = 10, int? c }) {
  return false;
}

// Error、这种不加非空默认值,也不加可空修饰符,编译器会直接报错
bool name({int a, int b}) {
  return false;
}
上一篇 下一篇

猜你喜欢

热点阅读