Error in Type - Variance - Scala -
def test[t<:anyval](s:t):t={ s+1 }
this showing error:
:11: error: type mismatch;
found : int(1)
required: string s+1
when t type of anyval why required string?
i'm not sure why you're getting error string
- although suspect it's because of other code haven't included in answer - code posted can not work because anyval
constraint not suffice if want call +
method on s
parameter.
this speculation, because haven't mentioned you're trying do, imagine along lines of "i want function adds 1 number, regardless of type".
if so, anyval
restrictive (e.g. bigint
not anyval
). in fact, don't need such constraint @ all, rather need access numeric[t]
instance. numeric type class providing several operators - including +
.
usage (you might have scala's implicits if haven't understand this):
def test[t](x: t)(implicit numeric: numeric[t]): t = { numeric.plus(x,numeric.one) }
you can still add anyval
constraint if you're sure need it.
Comments
Post a Comment