i trying understand type parameter concepts in scala.
def sum [a] (a:a):a={a} // used single parameter , working fine, able pass data type.
here:
def sum[a](a:a,b:a):a={a+b} //declare 2 arguments <console>:7: error: type mismatch; found : required: string def sum[a](a:a,b:a):a={a+b}
the above function has type parameter, have not mentioned data type - how come it's treated string?
def sum[a](a:a,b:a):a={a+b}
you adding t
+
t
, compiler can't infer +
t
, use default implicit +
: any2stringadd
, compiler throw required: string
error.
see https://issues.scala-lang.org/browse/si-8229
implicit final class any2stringadd[a](private val self: a) extends anyval { def +(other: string): string = string.valueof(self) + other }
Comments
Post a Comment