gpt4 book ai didi

scala - 为什么在具有重复参数的 Scala 部分中不允许使用默认参数?

转载 作者:行者123 更新时间:2023-12-04 11:35:55 26 4
gpt4 key购买 nike

根据 Scala 规范 Section 4.6.3 :

It is not allowed to define any default arguments in a parameter section with a repeated parameter.



实际上,如果我定义以下案例类:
case class Example(value: Option[String] = None, otherValues: String*)

根据规范,我得到的结果是预期的:
error: a parameter section with a `*'-parameter is not allowed to have default arguments
case class Example(value: Option[String] = None, otherValues: String*)

但问题是为什么不允许这样做?类的第一个参数完全独立于重复的参数,那么为什么会有这个限制呢?

最佳答案

因为你可以这样做:

case class Example(value: String = "default", otherValues: String*)

现在,如果您调用 Example("Hello", "world") , 第一个 "Hello"属于 value或至 otherValues ?

您可能会争辩说您的示例中的类型不同,但规则变得太复杂而无法遵循。例如,经常与 Any 一起使用的重复参数类型。这个例子 case class Example(value: Option[String] = None, otherValues: Any*)有不同的类型,但仍然在同一个问题上苦苦挣扎

关于scala - 为什么在具有重复参数的 Scala 部分中不允许使用默认参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33809963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com