2012-01-25 10 views
6

Scalaで奇妙な構文が発生しました。他の関数に引数として渡された関数を使用すると、アンパサンドが意味することは何ですか?Scalaで関数間のアンパサンドの意味

partialUpdate { 
    SetHtml(currentAmountId, 
    Text(leadingBid.toString)) & 
    SetHtml(nextAmountId, 
    Text(minimumBid.toString)) & 
    SetHtml(winningCustomerId, winningCustomer) & 
    SetValueAndFocus(amountId,"") 
} 

この1つを私に説明していただきありがとうございます。

+1

これはリフトに関連していますか?もしそうなら、あなたの質問と多分タイトルでこれを明確にしてください。これはスカラー標準ライブラリにはないようです。 – ziggystar

答えて

1

この場合、SetHtml呼び出しの出力を連結しているように見えます。

このようにわかりますか?

partialUpdate { 
    SetHtml(currentAmountId, Text(leadingBid.toString)) & 
    SetHtml(nextAmountId, Text(minimumBid.toString)) & 
    SetHtml(winningCustomerId, winningCustomer) & 
    SetValueAndFocus(amountId,"") 
} 
+0

Scalaの文字列の連結演算子として機能しますか? – Jarek

+2

&は、SetHtmlによって返されるものの方法です。それがStringの場合は、暗黙的に追加されたメソッドです。これは、暗示と過度のオーバーロードの問題です。 – Chochos

+1

@Chocos:趣味はもちろんですが、私の意見では、Liftは、例えばSpecs2のような非常にあいまいな機械のないきれいな構文を提供するのに非常に良い仕事をしています。ドキュメンテーションでもう少し時間を費やす必要があるかもしれませんが、間違いなく価値があります。 –

関連する問題