2012-02-14 28 views

回答

12

使用選項不再是一個選項,使用:

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

得到執行能夠使用Platform.executable(平臺來自鏢:IO)

爲了解析傳遞給主參數,使用這個cool package

3

編輯:這不再有效,請參閱上面的接受答案。

請參閱Options

http://api.dartlang.org/dart_io/Options.html

List<String> argv = (new Options()).arguments; 
+0

我看到飛鏢從參數省略了腳本的名稱。你知道如何找回它嗎? Ruby和Perl用'$ 0'做它。 – mcandre 2012-02-14 16:10:19

+0

啊,選項有一個'腳本'訪問器。 http://rosettacode.org/wiki/Program_name#Dart – mcandre 2012-02-14 16:22:50

+0

小額外的評論:截至2013年3月,Options類是dart:io。 – 2013-03-22 09:25:24

1
#!/usr/bin/env dart 

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

一些註釋:(1)您不需要導入核心庫,(2)+運算符不能用作字符串連接,所以使用「參數:$ {new Options()。arguments}」 – rmuller 2012-09-04 15:33:27

+0

我認爲我正在使用的Dart/Mac OS X版本,實際上你必須導入'dart:core'。感謝您提供Dart提示。很明顯''可以用於字符串連接,因爲它在這個片段中起作用。也許字符串插值在Dart中是首選,但它不是唯一的選擇。 – mcandre 2012-09-04 19:52:19

+1

http://www.dartlang.org/articles/m1-language-changes/ – rmuller 2012-09-05 08:37:57

3
// dart 1.0 
import 'dart:io'; 

void main(List<String> args) { 
    String exec = Platform.executable; 
    List<String> flags = Platform.executableArguments; 
    Uri script = Platform.script; 

    print("exec=$exec"); 
    print("flags=$flags"); 
    print("script=$script"); 

    print("script arguments:"); 
    for(String arg in args) 
    print(arg); 
}