如何在Dart中将变量传递给main?

时间:2013-02-10 06:42:29

标签: dart

我在Django应用程序中使用Dart。需要将配置参数传递给Dart。如何将值传递给main()?此时我正在考虑在网页中创建隐藏元素并使用查询来获取值。有更好的方法吗?

3 个答案:

答案 0 :(得分:6)

听起来你正在构建一个浏览器应用程序?

(顺便说一句,您可以将new Options().arguments用于命令行应用程序。效果很好,但显然浏览器应用程序中没有命令行:)

(其次,main()不接受参数,所以我们必须找到另一种方法。)

好的,对于浏览器应用,我可能会尝试做的是在<script>标记内的页面中嵌入一些JSON。然后,使用查询,找到该元素,解析内容,然后你就可以了。

在您的HTML中:

<script id="config">
  {"environment":"test"}
</script>

在您的Dart文件中:

import 'dart:html';
import 'dart:json' as json;

void main() {
  var config = json.parse(query("#config").innerHtml);

  print(config['environment']);
}

希望有所帮助!

答案 1 :(得分:0)

使用Options作为seen in this answer

#!/usr/bin/env dart

main() {
    print("Args: " + new Options().arguments);
}

答案 2 :(得分:0)

Options不再可用。

现在主函数接受参数了。

main(List<String> args) {
   print(args);
}

如果您来自python,c,c ++。期望args[0]将给出脚本的路径。

但是在dart参数中,仅是参数。

要获取脚本的路径Platform.script,可以使用Uri对象。然后Uri.path以字符串形式获取文件路径。

一个例子:

import 'dart:io';

main(List<String> args) {
  var dir = Directory.current.path;
  var p = Platform.script.path;
  print("$p called with $args in $dir");
}