如果没有提供,为什么dart可选命名参数不为null?

Kya*_*Tun 0 optional-parameters named dart

如果未提供可选的命名参数,为什么它不null 符合预期

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

  print(double(v: 2));
  print(double());
  print('done');
}
Run Code Online (Sandbox Code Playgroud)

输出为

4
Uncaught TypeError: v.$mul is not a function
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 6

num double({v: num}) {
Run Code Online (Sandbox Code Playgroud)

使用默认值(类型)定义v类型的命名参数dynamicnum

它应该是

num double({num v}) {
Run Code Online (Sandbox Code Playgroud)

使您的代码按预期工作