隐式参数和ClassTag

 谁许我一世繁华似锦 发布于 2023-01-14 15:51
  • php
  • 有人可以通过下面的错误消息解释Scala编译器试图告诉我的内容吗?

    object Some {
      def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T = data
    }
    object Other {
      def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T =
        Some(data)(ordering.reverse)
    }
    

    编译说:

    not enough arguments for method apply: (implicit evidence$2: scala.reflect.ClassTag[T], implicit ordering: Ordering[T])T in object Some. Unspecified value parameter ordering.
    

    当我ClassTag在对象中添加方法时,出现错误Some,以便在那里使用一些内部数组.最初,代码是(并且编译没有错误):

    object Some {
      def apply[T](data: T)(implicit ordering: Ordering[T]): T = data
    }
    object Other {
      def apply[T: ClassTag](data: T)(implicit ordering: Ordering[T]): T =
        Some(data)(ordering.reverse)
    }
    

    我知道ClassTag添加一个隐含的类型信息来克服擦除,但我不明白这与我的排序隐式参数有什么关系,或者为什么编译器突然认为排序没有价值......

    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    热门标签
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有