你能将命名参数与短手构造函数参数结合起来吗?

Jor*_*dan 15 constructor optional-parameters named-parameters dart

在飞镖:

命名参数的功能类似于 -

String send(msg, {rate: 'First Class'}) {
  return '${msg} was sent via ${rate}';
}

// you can use named parameters if the argument is optional
send("I'm poor", rate:'4th class'); // == "I'm poor was sent via 4th class"
Run Code Online (Sandbox Code Playgroud)

简写构造函数参数的功能类似于 -

class Person {
  String name;

  // parameters prefixed by 'this.' will assign to
  // instance variables automatically
  Person(this.name);
}
Run Code Online (Sandbox Code Playgroud)



有没有办法做下面的事情? -

class Person{
   String name;
   String age;

   Person({this.name = "defaultName", this.age = "defaultAge"});
}

//So that I could do something like:
var personAlpha = new Person(name: "Jordan");
Run Code Online (Sandbox Code Playgroud)

谢谢,

dartlang同义词借来的代码示例

Gün*_*uer 9

你只需要使用冒号而不是等号

class Person {
   String name;
   String age;

   Person({this.name = "defaultName", this.age = "defaultAge"});
}
Run Code Online (Sandbox Code Playgroud)

我发现这仍然令人困惑,可选参数用于=指定默认值但名为use :.应该问自己.

  • 现在显然允许(首选?)用“=”代替冒号。 (2认同)
  • @Suragch 谢谢!是的,Dart 2 添加了 `=`,现在它比 `:` 更适合匹配可选的位置参数。 (2认同)