Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 隐式方法参数列表中的ome来自何处?_Scala - Fatal编程技术网

Scala 隐式方法参数列表中的ome来自何处?

Scala 隐式方法参数列表中的ome来自何处?,scala,Scala,我尝试了另一篇文章中的一个例子:。下面是一个可行的例子: object Registry { import scala.reflect.Manifest private var map = Map.empty[Any, (Manifest[_], Any)] def register[T](name: Any, item: T)(implicit m: Manifest[T]) { map = map.updated(name, m -> item)

我尝试了另一篇文章中的一个例子:。下面是一个可行的例子:

object Registry {
   import scala.reflect.Manifest

   private var map = Map.empty[Any, (Manifest[_], Any)]

   def register[T](name: Any, item: T)(implicit m: Manifest[T]) {
      map = map.updated(name, m -> item)
   }

   def get[T](key: Any)(implicit m: Manifest[T]): Option[T] = {
     map get key flatMap {
      case (om, s) => if (om <:< m) Some(s.asInstanceOf[T]) else None
   }
  }
}

object App extends App {
   Registry.register("a", List(1, 2, 3))

   println(Registry.get[List[Int]]("a"))
   //Some(List(1, 2, 3))
  }
对象注册表{
导入scala.reflect.Manifest
private-var-map=map.empty[Any,(Manifest[\u],Any)]
def寄存器[T](名称:任意,项:T)(隐式m:Manifest[T]){
map=map.updated(名称,m->item)
}
def get[T](键:任意)(隐式m:Manifest[T]):选项[T]={
地图获取关键平面图{
案例(om,s)=>如果(om)如果(om
  • 清单隐式由编译器插入(当编译器可以生成它们时)
  • om
    
  • 清单隐式由编译器插入(当编译器可以生成它们时)
  • om