在Scala中,可以使用上下文界定(context bounds)和默认参数来设置数值泛型函数的默认类型。
首先,定义一个数值泛型函数,使用上下文界定来限定类型为Numeric:
def sum[T: Numeric](a: T, b: T): T = {
val numeric = implicitly[Numeric[T]]
numeric.plus(a, b)
}
接下来,为函数参数提供默认值,以设置默认类型:
def sum[T: Numeric](a: T = 0, b: T = 0): T = {
val numeric = implicitly[Numeric[T]]
numeric.plus(a, b)
}
在上述示例中,函数sum
接受两个类型为T的参数,并使用上下文界定来限定T为Numeric类型。通过为参数提供默认值,可以设置默认类型为0。
使用示例:
val result = sum(2, 3) // 使用默认类型为Int的参数
println(result) // 输出:5
val result2 = sum[Double](2.5, 3.5) // 显式指定类型为Double的参数
println(result2) // 输出:6.0
在这个例子中,我们展示了如何在Scala数值泛型函数中设置默认类型。这种方法可以适用于各种数值类型,如Int、Double、Float等。对于更复杂的类型,可以根据需要进行相应的调整。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云