メソッドは暗黙的なパラメータを引数として持つことはできませんか? 私のコードでは、暗黙的なパラメータを持つメソッドを作成します。いくつかの時間私はちょうど他の方法に転送したい。このときScalaは私にエラーを与えます。以下を参照してください:スカラ暗黙的なパラメータを持つメソッドを参照する方法
case class ComplicatedSalesTaxData(baseRate: Float,isTaxHoliday: Boolean)
def calcText(amount: Float,rate : (ComplicatedSalesTaxData) => Float) : Float = amount * rate(ComplicatedSalesTaxData(0.06F,false))
def rate(implicit cstd:ComplicatedSalesTaxData) = {
if(cstd.isTaxHoliday)
cstd.baseRate
else
0.01F }
calcText(100F,rate) // will get error : could not find implicit value for parameter cstd: ComplicatedSalesTaxData
ここで、「ComplicatedSalesTaxData」の「暗黙の」インスタンスはどこですか? –
私はそれを宣言しますが、ここでは宣言しません。ここでは、私はちょうど 'レート'メソッドを 'calcText'に転送し、 'calcText'で作成した 'ComplicatedSalesTaxData'を指定して呼び出したい – Milk