(Conscriptを使用して)一般的なScalaスクリプトテンプレートを作成したいと思います。このスクリプトでは、冗長モードを有効にするためのコマンドラインオプション、たとえばフラグ "-v"を使用する必要があります。Scalaスクリプトのコマンドラインパラメータを使用するための慣習的な方法
Perlスクリプトでは、グローバル変数$ verboseを作成します。これは、フラグが存在するかどうかによって、trueまたはfalse(または1または0)に設定されます。私は、スクリプト内のグローバル変数を設定することはScalaの方法ではないことを理解しています。それを行うにはどのように
object Main {
def main(args: Array[String]) {
val options = parseOptions(args); // some way of parsing
// how to use 'options' in the remainder of the script?
}
}
:
は、次の例を考えてみましょうか?私が見ることのできる1つの方法は、閉包内のコンテキスト変数としてオプション値を保持することです。つまり、入れ子関数からそれらにアクセスします。しかし、ネストされた関数を使用する際の問題は、それらのユニットテストを書くことができないことです。別の簡単な方法は、すべての関数呼び出しと一緒にオプションを渡すことですが、それは扱いにくいようです。
提案がありますか?
感謝。それでは、scoptのOptionParser.parse()関数が返すconfigオブジェクトをどうやって使うのですか? –
答えを更新して、これがリンクオンリーの回答であることを避ける方法の例を投稿してください – Daenyth
ありがとう、私は_implicit_を使用しているバージョンは私の場合は非常にうまくいくと思います! –