跳到主要内容

常量默认

可选参数的默认值必须是常量。

描述

#

当可选参数(无论是命名参数还是位置参数)的默认值不是编译时常量时,分析器会生成此诊断信息。

示例

#

以下代码会生成此诊断信息:

dart
var defaultValue = 3;

void f([int value = defaultValue]) {}

常见修复方法

#

如果默认值可以转换为常量,则进行转换。

dart
const defaultValue = 3;

void f([int value = defaultValue]) {}

如果默认值需要随时间变化,则在函数内部应用默认值。

dart
var defaultValue = 3;

void f([int? value]) {
  value ??= defaultValue;
}