我正在使用Dart的分析器API,它允许我内省 Dart 代码。
这是一些示例代码:
void soIntense(anything, {bool flag: true, int value}) { }
注意flag
参数的默认值是true
.
假设我有一个实例,如何获得默认值ParameterElement
?
这是我找到的最好方法。我希望有更好的方法。
首先,检查是否有默认值:
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 的内容数据的子字符串。