首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DART中是否支持预定义的宏

DART中是否支持预定义的宏
EN

Stack Overflow用户
提问于 2018-02-25 07:30:17
回答 2查看 1.5K关注 0票数 2

DART是否支持预定义的宏,例如:

代码语言:javascript
复制
__LINE__

代码语言:javascript
复制
__FUNCTION__

询问的原因是,转换器DART2JS使控制台日志变得无用,因为所有日志都显示为: js_primitives.dart:30

更新BasE

当使用转换器dart2js时,print("hello world");将导致:

代码语言:javascript
复制
JS('void', r'console.log(#)', "hello world);

从函数调用:驻留在库dart2js._js_primitives中的printString(字符串

这导致在DART代码中使用print();时,console.log消息总是反复包含相同的行号。(因为console.log将自动将文件名和行号添加到驻留在dart2js._js_primitives中的包装器函数的控制台显示中)由于当前向console.log消息添加文件名和行号的实现是无用的,如果有另一种方法来允许显示额外的信息,那就太好了。

例如,print("hello world" __FUNCTION__ __LINE__);会产生更有用的额外调试信息。

EN

回答 2

Stack Overflow用户

发布于 2018-02-25 22:32:16

你可以使用

代码语言:javascript
复制
void main() {
  print(StackTrace.current);
}

获取有关错误来源的更好信息

您还可以在自定义区域中运行代码,并为该区域定义自定义打印方法。另请参阅https://api.dartlang.org/stable/1.24.3/dart-async/Zone/print.html

票数 2
EN

Stack Overflow用户

发布于 2018-02-26 01:25:16

您正在寻找的似乎是dart2js创建的源图,其中包含从javascript位置重新创建原始dart文件中的行号所需的信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48968722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档