2016-05-19 5 views
0

条件設定に関する質問。一定の条件が満たされた場合、私は唯一の定義された設定を持つようにしようとしている:条件が満たされた場合にのみ設定を定義します。

lazy val proj = project .settings(/*other settings...*/) .settings((if (condition) Seq(foo := bar.value) else Seq.empty): _*) 私は、個々の設定ごとにこの操作を行うことができれば、私のコードは実際に、より見やすくなり除き

例:

project.settings( // other settings... if (condition) (foo := bar.value) else (hole := Nil) // other settings... )

これを達成するためのきれいで受け入れられた方法はありますか? 「モノイドゼロ」の設定にはどのような候補がありますか?

+0

を使用することができますか? – Haspemulator

+0

'' 'Setting [Option [_]]' ''私は '' 'Some(...)' '' '' 'None'''のどちらかを割り当てることになります。条件がfalseと評価されたとき、私は割り当てを完全に避けたい。 – nadavwr

+0

(条件付きで)定義されていない設定にアクセスしたい場合は、どの値を期待していますか? – Haspemulator

答えて

2

あなたはなぜ、 `settingKey [オプション[何でも]]`を使用しない.configure

val prj = project.settings(...).configure { p => 
    if (foo) { 
    p.settings(...) 
    } else p 
} 
+0

これを単一の設定シーケンスの中に組み込もうとしています – nadavwr

関連する問題