【问题标题】:Scala Type Classes and Arrays [duplicate]Scala 类型类和数组 [重复]
【发布时间】:2014-10-14 13:42:22
【问题描述】:

我已经在谷歌上搜索了几个小时关于 scala 类型类的信息,但我仍然不知道如何解决这个问题:

 def mkArray[A:Ordering](size:Int):Array[A] = {
    Array.ofDim[A](size)
 }

基本上我的问题是我无法创建 A:Ordering 类型的数组,所以我尝试了很多东西并最终使用了上面的函数。但它告诉我:

- not enough arguments for method ofDim: (implicit evidence$3: scala.reflect.ClassTag[A])Array[A]. Unspecified value parameter 
 evidence$3.
- No ClassTag available for A

因此,如果您能告诉我如何解决这个问题,或许可以解释一下这里发生了什么,我们将不胜感激!

【问题讨论】:

    标签: arrays scala typeclass


    【解决方案1】:

    Array.ofDim 需要隐式 ClassTag for T 在范围内,所以你需要将它添加到你的 mkArray 函数中

      def mkArray[A:Ordering:ClassTag](size:Int):Array[A] = {
        Array.ofDim[A](size)
      }
    
      mkArray[String](10)
    

    【讨论】:

      猜你喜欢
      • 2012-12-30
      • 2012-02-09
      • 2020-07-27
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      • 2015-08-10
      相关资源
      最近更新 更多