我正在准备scala考试并面临这个问题

问题描述 投票:0回答:1

我正在 scala eclipse 中做,直到 ArrayBuffer 主题为止我没有任何问题

我正在做 ArrayBuffer 主题,有人可以解释一下为什么我会收到此错误,如果可能的话我想知道 ScalaEclipse 中的解决方案。

import scala.collection.mutable.ArrayBuffer;

object ArrayBuffer {
  def main(args: Array[String]){
    
    var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}

出现错误

ArrayBuffer 行中不带此参数

 var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)
scala
1个回答
0
投票

您将对象命名为

ArrayBuffer
,它隐藏了导入。然后,编译器尝试将参数应用于对象,但它不能。

将其重命名为不同的名称将使其按预期工作(在以下示例中,

ArrayBufferMain
):

import scala.collection.mutable.ArrayBuffer;

object ArrayBufferMain {
  def main(args: Array[String]): Unit = {
    
    var ArrayBuffer1 = ArrayBuffer(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}

Scala 编译器 2.13.14 报告了我提到的警告。您可能也想检查一下。

一些注意事项:

  1. 在您的代码中,您使用过程语法,该语法已被弃用(请参阅此处
  2. 仅供参考,如果您的名称发生冲突,则另一种可能是限定软件包或为导入别名,如下例所示
import scala.collection.mutable.{ArrayBuffer => AB};

object ArrayBuffer {
  def main(args: Array[String]): Unit = {
    
    var ArrayBuffer1 = AB(1,2,3,4,5)
    ArrayBuffer1.foreach(println)
    
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.