2012-02-14 18 views

答えて

12

コマンドライン引数を定義し、解析するために、このライブラリを使用して、もはやオプション、使用されていない:

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

実行ファイルを取得するには

メインに渡された引数を解析するために、私はダーツが引数からスクリプト名を省略していることがわかり、このcool package

3

編集:これはもう有効ではありません。上記の受け入れられた回答をご覧ください。

Optionsを参照してください。

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

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

を使用しますことができ、(IOプラットフォームは、ダーツから来ている)Platform.executableを使用しています。あなたはそれを取得する方法を知っていますか? RubyとPerlは '$ 0'でそれを行います。 – mcandre

+0

ああ、オプションには 'スクリプト'アクセサがあります。 http://rosettacode.org/wiki/Program_name#Dart – mcandre

+0

小規模の追加のコメント:2013年3月現在、Optionsクラスはdart:ioにあります。 –

1
#!/usr/bin/env dart 

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

いくつかのコメント:(1)コアライブラリをインポートする必要はありません。(2)+演算子は文字列連結として使用できないので、 "Args:$ {new Options()。arguments}"を使用してください。 – rmuller

+0

私が使用しているDart/Mac OS Xのバージョンでは、実際に 'dart:core'をインポートする必要があります。ダーツのヒントをありがとう。明らかに、このスニペットで動作するので、 '+'を文字列の連結に使うことができます。多分、Dartでは文字列補間が好まれますが、唯一の選択肢ではありません。 – mcandre

+1

http://www.dartlang.org/articles/m1-language-changes/ – rmuller

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); 
} 
関連する問題