私はGroovyを始めたばかりです。 Groovyスクリプトの引数を処理する方法の例がどこにも見つからなかったため、このメソッドを自分でハッキングしました。これを行うためのより良い方法が必要ですか?もしそうなら、私はおそらくより良い方法を探しています。
import groovy.lang.Binding;
Binding binding = new Binding();
int x = 1
for (a in this.args) {
println("arg$x: " + a)
binding.setProperty("arg$x", a);
x=x+1
}
println binding.getProperty("arg1")
println binding.getProperty("arg2")
println binding.getProperty("arg3")
引数を取得するだけでなく、より高度な解析が必要な場合は、Groovy CliBuilderを使用すると役立ちます。コマンドラインフラグ、オプションの引数、および使用方法の印刷を支援します。
チェックアウト CliBuilder のJavadocまたはMrHakis post について。
質問して申し訳ありません。私はちょうどそれを理解しました:
println args[0]
println args[1]
println args[2]
最も簡単なのは、単にthis.args
配列として:例:
test.groovy
println this.args[0]
コール:
C:>groovy test this
出力:
this
これを試して:
args.each{println it}
Javaと非常によく似ており、同じJava構文を使用できます。たとえば、.
_class TestExecutor {
public static void main(def args) {
println("Printing arguments");
for(String arguments : args) {
println (arguments);
}
}
}
_
それを実行すると、引数が表示されるはずです
_C:\Users\athakur\Desktop>groovy TestExecutor.groovy test1 test2 test3
Aug 16, 2014 11:47:56 AM org.codehaus.groovy.runtime.m12n.MetaInfExtensionModule
newModule
WARNING: Module [groovy-nio] - Unable to load extension class [org.codehaus.groo
vy.runtime.NioGroovyMethods]
Printing arguments
test1
test2
test3
_
また、mainメソッドを提供しない場合、または上記の例のように提供しない場合は、引数を_args[i]
_として取得できますが、配列の名前を変更できます(Javaと同じ)。だからあなたは次のようなものを持つことができます-
_public static void main(def argsNew) {
println("Printing arguments");
for(String arguments : argsNew) {
//using args in above for loop will throw error
println (arguments);
}
}
_
ポイントは、ハードコーディングされたものではないということです。最後に、他の回答で示唆されているように、スマート解析には常に CliBuilder を使用できます。しかし、その点でも内部的にdef options = cli.parse(args)
を使用しました。