Dart参数语法-需要说明

时间:2019-07-02 09:32:05

标签: types dart syntax arguments

我不小心键入了一些奇怪的东西,但它进行了编译,但是导致了类型运行时错误

class BoldText extends Text {
  BoldText(
    String data, {
    textAlign: TextAlign,
  }) : super(
          data,
          textAlign: textAlign,
        );
}

您可以猜出我是哪种语言。

但这部分是什么意思?

textAlign: TextAlign

IDE提示显示

{dynamic textAlign: TextAlign}

我还是无法解密。

1 个答案:

答案 0 :(得分:1)

textAlign参数是一个可选的命名参数。您可以将命名参数的默认值指定为= value: value。现在首选使用前一种语法,但是后者仍然有效。

如果省略方法或构造函数的任何(常规)参数的类型,则默认为dynamic

因此,实际上,该参数的声明为{ dynamic textAlign = TextAlign },这是一个名为textAlign,类型为dynamic和默认值为TextAlign的命名参数。

(上面的“((正常))参数”排除了初始化诸如MyConstructor(this.myField)之类的形式参数,它从其初始化的字段中获取其类型,而不是默认为dynamic)。