scala - 在 scala 中省略具有默认值的参数时获取 "incorrect number of arguments"

标签 scala default-value

对于调用以下构造函数:

class SparkContext(
    val master: String,
    val appName: String,
    val sparkHome: String = null,
    val jars: Seq[String] = Nil,
    val environment: Map[String, String] = Map())
  extends Logging {

在以下通知中,最后一个参数被注释掉:

val spark = new SparkContext("localhost", "GroupBy Test",
  System.getenv("SPARK_HOME"), Seq(System.getenv("SPARK_EXAMPLES_JAR")) /* , Map() */)

然后 scala 编译器(2.9.2)提示:

not enough arguments for constructor SparkContext: (master: String, appName: String, sparkHome: String, jars: Seq[String], environment: scala.collection.Map[String,String])spark.SparkContext
    val spark = new SparkContext("localhost", "GroupBy Test",
                ^

当它被取消注释时,代码就会编译。那么..AFA 省略最后一个参数(而 scala 使用默认值)有什么问题?

请注意,我使用的是 2.9.3

最佳答案

当我尝试使用 Scala 编译器的一个主要版本(第一个 + 第二个数字)和库的不同版本(例如2.9 编译器与 2.10 编译的库。不幸的是,Scala 编译的库在 2.8、2.9 或 2.10 之间不兼容,也不在 2.8 的不同次要版本(第三个数字不同)之间兼容。换句话说,所有 Scala 库以及代码本身都必须使用相同的主要版本进行编译,对于 2.8.x,也必须使用相同的次要版本进行编译。从 2.10 开始的次要版本之间确实存在二进制兼容性,并且在大多数情况下与 2.9 之间存在二进制兼容性,尽管 2.9 系列中存在一些边缘情况。

关于scala - 在 scala 中省略具有默认值的参数时获取 "incorrect number of arguments",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940942/

相关文章:

scala - Hive 错误 : Exception in thread "main" java. lang.NoClassDefFoundError:scala/collection/Iterable

performance - 访问配置属性的成本是多少?

javascript - 是否有 css 属性的默认值列表? (所以我可以在js中为它们创建一个排除数组)

compiler-errors - VHDL - 分配默认值

scala - Scala 在 F# 中对应的 Discriminated Union 是什么?

java - Grails 堆栈与 Scala 和 Scaml

reactjs - 是否可以在 React 中使用 React.useState(() => {})?

php - Magento:添加自定义 EAV 属性,在创建实体时使用其默认值自动填充

c++ - 使用 typedef 部分默认模板参数?

scala - Intellij-idea 12 Scala 支持 : it consumes almost 300% of my cpu resources