5

我正在使用Dart分析器API,它允许我内省 Dart 代码。

这是一些示例代码:

void soIntense(anything, {bool flag: true, int value}) {  }

注意flag参数的默认值是true.

假设我有一个实例,如何获得默认值ParameterElement

4

1 回答 1

4

这是我找到的最好方法。我希望有更好的方法。

首先,检查是否有默认值:

bool hasDefaultValue = _parameter.defaultValueRange != null &&
       _parameter.defaultValueRange != SourceRange.EMPTY;

然后,您可以使用ParameterElement's defaultValueRange

SourceRange range = _parameter.defaultValueRange;
return _parameter.source.contents.data.substring(range.offset, range.end);

用英语讲:

获取参数元素的 Source 的内容数据的子字符串。

于 2015-02-08T20:00:42.493 回答