我在Scala中遇到了一个小问题,那就是打字。在Haskell中,我可以这样做:
add :: (Num a) => (a,a) -> (a,a) -> (a,a)这样,我就可以将任何支持+的数值型类型抛入到add中。
case class NumPair[A <: Numeric](x: A, y: A)但这似乎并不管用。但是由于Scala文档的存在,Numeric[T]是唯一允许这些操作的特性,并且似乎被Int、Float等扩展了。
有什么建议吗?
发布于 2011-03-17 01:31:16
case class NumPair[A](x:A, y:A)(implicit num:Numeric[A])Numeric实例本身不是由Int、Float等扩展的,但它是作为隐式对象提供的。有关更详细的解释,请参阅here。
https://stackoverflow.com/questions/5328574
复制相似问题