【问题标题】:REPL for dartlang用于 dartlang 的 REPL
【发布时间】:2013-08-09 05:01:40
【问题描述】:

是否有可供 Dart 试验的 REPL?

我尝试在 Dartium 的 devtools 中输入 dart 代码,但也没有用。

所以我找不到在 dart 中使用各种 API 的简单方法。

【问题讨论】:

    标签: dart dart-mirrors


    【解决方案1】:

    我尝试在 Dartium 的 devtools 中输入 dart 代码,但也没有 工作。

    我对 Dart 很陌生,但我发现你可以在 Dartium 中评估代码。为此,您必须首先加载一个包含 Dart 代码的页面,然后在控制台中将此选择器从“javascript 页面上下文”切换到引用 Dart 包或 Dart 代码的选择器。

    一旦你这样做了,你应该能够在控制台中执行 Dart:

    作为 VIM 用户,我现在几乎不需要打开 Dart 编辑器 :)。我还应该提到断点、悬停在代码中以获取变量详细信息、导航调用堆栈以及控制台中的某种程度的智能感知也可以工作。不过,我无法让条件断点工作。

    【讨论】:

    • 好极了,看起来很鼓舞人心。
    • 与 JavaScript 控制台不同,您不能在控制台中定义类或函数。它似乎在类似于函数体的上下文中(因此您仍然可以创建 lambdas)。
    【解决方案2】:

    虽然它不是真正的 REPL,但您可能会发现 Try Dart 在线工具对玩耍很有用。它有点慢,因为它实际上是将 Dart 代码编译为 JavaScript 以使其在浏览器中工作。

    还有一个 console 是某人构建的,如果您正在寻找真正的 REPL,这可能会更好,但它需要一些设置。

    【讨论】:

    • 我尝试构建 dart-console,但我认为它与新的 dart-sdk [0.6.15.3_r25822] 不兼容。
    • 我注意到它的谷歌代码上有一个issue
    【解决方案3】:

    有一个关于 Dartium 的 REPL 的公告 - 请参阅下面 Nathanial 的评论。 Smalltalk 有类似 super-REPL 的计划。以下是 Gilad Bracha(Google Dart 团队成员)在 Is there a REPL or console for Dart 中就该主题所写的内容:

    “我根本不认为这是一个语言问题。这是工具和反射库支持的问题。使用适当的镜像构建器 API,构建 REPL 将是微不足道的。现在它可以当然,REPL 并不是最终目标——还有更高级的交互式工具,例如 Smalltalk/Self/Newspeak 中的工作区,您不仅可以在某些顶层交互地评估事物,还可以检查生成的对象,评估在个人声明或对象等的范围内。我相信我们会及时到达那里 - 我更喜欢早点而不是晚点。”

    【讨论】:

    • 据 news.dartlang.org 报道,Dartium 在本月 2 日获得了 REPL。这么一说,我好像找不到了。只是在控制台中输入 dart 似乎对我不起作用,即使在断点处也是如此。 news.dartlang.org/2013/10/…
    • @Nathanial 你说得对,它提到了 REPL。我最好编辑我的答案。
    【解决方案4】:

    正确答案是https://dartpad.dev/

    在 2013 年发布其他答案时,该网站并不存在,但您在 2020 年之后偶然发现了这篇文章。现在您知道了。 https://dartpad.dev 允许您创建和共享新的 Dart sn-ps,甚至可以将它们放入在线运行的 Flutter 应用程序中。非常非常酷!

    【讨论】:

    • 不错,但它不是 REPL :-(
    • 什么?我错过了什么?读取-评估-打印-循环...检查、检查、检查和检查。请教育我,@EricPlaton。 :-)
    猜你喜欢
    • 2011-10-04
    • 2011-06-19
    • 1970-01-01
    • 2017-02-02
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-04-20
    • 2011-08-22
    相关资源
    最近更新 更多