Почему необязательный именованный аргумент дротика не равен нулю, если он не указан?

Если необязательный именованный параметр не указан, почему он не null как ожидалось?

void main() {
  num double({v: num}) {
    if (v == null)
      return 0;
    else
      return v * 2;
  }

  print(double(v: 2));
  print(double());
  print('done');
}

который выводится как

4
Uncaught TypeError: v.$mul is not a function

person Kyaw Tun    schedule 27.08.2017    source источник


Ответы (1)


num double({v: num}) {

определяет именованный параметр v типа dynamic со значением по умолчанию num (тип)

Вместо этого должно быть

num double({num v}) {

чтобы ваш код работал как положено

person Günter Zöchbauer    schedule 27.08.2017