Scala 如何引用带有隐式参数的方法

Scala how to reference a method that with an implicit parameter

该方法有一个隐式参数不能作为参数引用? 在我的代码中,我创建了一个具有隐式参数的方法。有时我只想将它转移到其他方法。这次 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

你要明确的说要传参:

calcText(100F,rate(_)) 

您发布的错误消息表明编译器无法在当前范围内找到隐式 ComplicatedSalesTaxData。因此你必须定义一个。 然后调用应该看起来像这样 calcText(100F,rate(_)) 而不是通配符 _ 你也可以明确地传递值。