Scala:可遍历的foreach定义
我假设Scala:可遍历的foreach定义,scala,generics,Scala,Generics,我假设Traversabletrait中的foreach方法定义如下: def foreach[U](f: Elem => U) 它应该被定义为foreach[U,Elem](f:Elem=>U),因为有两种类型,Elem和U?Elem类型来自可遍历的的泛型。函数的输入必须与可遍历的元素类型相同,因此在方法调用站点重新定义它是没有意义的。元素类型来自可遍历的泛型。函数的输入必须与可遍历的元素的类型相同,因此在方法调用站点重新定义它没有意义。foreach[U](A=>U)是trait可遍
Traversable
trait中的foreach
方法定义如下:
def foreach[U](f: Elem => U)
它应该被定义为
foreach[U,Elem](f:Elem=>U)
,因为有两种类型,Elem
和U
?Elem
类型来自可遍历的的泛型。函数的输入必须与可遍历
的元素类型相同,因此在方法调用站点重新定义它是没有意义的。元素
类型来自可遍历
的泛型。函数的输入必须与可遍历的元素的类型相同,因此在方法调用站点重新定义它没有意义。foreach[U](A=>U)
是trait可遍历[+A]
中的方法
trait Traversable[+A] extends TraversableLike[A, ...] {
...
}
trait TraversableLike[+A, ...] extends ... {
...
def foreach[U](f: A => U): Unit
...
}
foreach[U](A=>U)
是trait中可遍历[+A]
的方法
trait Traversable[+A] extends TraversableLike[A, ...] {
...
}
trait TraversableLike[+A, ...] extends ... {
...
def foreach[U](f: A => U): Unit
...
}