代码之家  ›  专栏  ›  技术社区  ›  vijayinani

当实现简单地抛出新错误时,scala array apply方法如何返回索引处的值

  •  3
  • vijayinani  · 技术社区  · 7 年前

    我在发帖前挠了挠头。

    object ScalaPractice extends App {
      val nums = Array("zero","one","two")
      print(nums.apply(0))
    }
    

    实施 apply 方法从 print(nums.apply(0)) 简单地从数组类中获取,如下所示:

    def apply(i: Int): T = throw new Error()
    

    我甚至试过调试,但是,它不在这个方法中(尽管当我试图打开实现时ide会发送给我)。

    这真是令人困惑,如何在这里获取特定索引处的元素?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Ryan The Leach    7 年前

    按照 what-is-magic-of-scala-array-apply scala编译器会插入,scala运行时有几个类定义,这些类定义只存在于提供要链接的内容,否则由编译器magic处理。

    scala编译器,当它创建 bytecode for Apply methods determines is an accessor for type array : 威尔 generate jvm bytecode for interacting with arrays directly .

    推荐文章