我是scala的新手,并努力解决一些代码问题。在下面的代码中,Signal [_]的含义是什么意思?它与Signal [T]类型有什么不同?
class Signal[T](expr: => T) {.......}
object NoSignal extends Signal[Nothing](???) {
override def computeValue() = ()
}
object Signal {
val caller = new DynamicVariable[Signal[_]](NoSignal)
def apply[T](expr: => T) = new Signal(expr)
}
由于
答案 0 :(得分:1)
这里是great summary of all the uses of underscore。
在这种情况下,我认为它表示existential type或通配符("不小心"或" meh ......"类型)。
val m:Map[_,_] = Map[String,Integer]()
...有关键和值的特定类型的信息将丢失。您可以调用此地图的大小方法,但不能使用任何引用方法签名中的键或值类型的方法。