たが、私は空の引数リストは、状況に応じてそれを呼び出すが、/それ以外の場合は避けたいのですがscalaに変数argを渡す方法は?
def test(args: Any*) = args.size
。
test(List("one").filter(_ => condition) : _*)
がこれよりも良い方法があります:
私は、このソリューションで出て来ていますか?
は、より多くの文脈では、私がプレイ2.0 Scalaので遊んで、これを持っている:user._3
はrembembermeブールのある
user => Redirect(routes.Application.index).withSession("username" -> user._1).withCookies(
List(Cookie("rememberme", Crypto.sign(user._1) + "-" + user._1)).filter(_ => user._3) : _*)
。
remembermeがfalseの場合は、withSessionをコールしたり、空の引数リスト(Cookieをインスタンス化しない)でコールしないようにしたいと思います。
ありがとうございます。
私はこれが最もきれいであることに同意し、私は本当になかった、ありがとう私はちょうどSeq.emptyまたはNilがないので、2番目の答えも便利です:) – avalez
@alavezあなたの目的がListをインスタンス化するのを避けていれば、これは大きな失敗ですが、それはまさに 'Seq'のやり方だから!これを避けるには、withCookiesの前の部分を 'val t'に代入し、' if(user._3)t.withCookies(...)else t.withCookies() 'を呼び出します。一時変数は良いです! –
ご意見ありがとうございます。 Nilを使用するとリストもインスタンス化されるのを避けることができますか?そしてちょうど良い理解のために、Seq.emptyは何とかNilよりも良くて悪いですか? – avalez