Разница в колебаниях между = (равно) и : (двоеточие) инициализатором параметра по умолчанию

#flutter #dart

#колебание #дротик

Вопрос:

Я наткнулся на этот код

  const CustomChip({
    Key key,
    this.leading,
    this.trailing,
    this.title,
    this.backgroundColor,
    this.height: 30.0,
    this.elevation = 2.0,
    this.onTap,
  }) : super(key: key);
  

В чем разница между this.height: 30.0 и this.height = 30.0 кажется, что если оставить оба значения неопределенными, высота составит 30,0

Редактировать

Я тоже нашел что-то подобное

 const CustomChip({
    Key key,
    this.leading,
    this.trailing,
    this.title,
    this.backgroundColor,
    double height,
    this.elevation = 2.0,
    this.onTap,
  })
      : height = height ?? 30.0,
        super(key: key);
  

Теперь я в замешательстве

Ответ №1:

из эффективного дротика:

По устаревшим причинам Dart допускает оба : и = в качестве разделителя значений по умолчанию для именованных параметров. Для согласованности с необязательными позиционными параметрами используйте = .

 void insert(Object item, {int at = 0}) { ... } // good
void insert(Object item, {int at: 0}) { ... } // bad