Je suis très nouveau à Scala. Je fonctionScala Générique Liste adition
def listSum[T](xs :List[T])(implicit abc : Numeric[T]): T = {
xs.sum
}
val IntList: List[Int] = List (1, 2, 3, 4)
val DList: List[Double] = List (1.0, 2.0, 3, 4)
l'exemple de code ci-dessus fonctionne très bien, mais quand je change la fonction ci-dessous, il cesse de fonctionner avec l'erreur
n'a pas pu trouver la valeur implicite pour le paramètre
abc: Numeric[AnyVal]
Depuis AnyVal
est le type de base que je peux faire l'addition, je ne peux pas?
où tous les implicits sont-ils définis?
def listSum(xs :List[AnyVal])(implicit abc : Numeric[AnyVal]) = {
xs.sum
}
val AList: List[AnyVal] = List (1, 2, 3, 4)
Aussi, cela ne fonctionne pas, je pense pour la même raison.
def listSum[T](xs :List[T])(implicit abc : Numeric[T]): T = {
xs.sum
}
val BList : List[Boolean] = List(true, false)
println(listSum(BList))
Vous ne pouvez pas additionner "anyval", car il n'est pas défini comment le faire. Vous pouvez cependant additionner des choses "numériques". Exemple 'def listSum [T: numérique] (xs: liste [T]): T = xs.sum' – Tyth