【问题标题】:Is there a difference in Scala between Seq[T] and T*?Seq[T] 和 T* 之间的 Scala 有区别吗?
【发布时间】:2011-04-13 13:34:36
【问题描述】:

我的 IDE 工具显示 xs 在以下 sn-p 中具有 Int* 类型:

def accept(xs: Int*) = true

然而,语言参考表明声明为T* 的重复参数的类型为Seq[T]Int*Seq[Int] 有区别吗?

【问题讨论】:

    标签: scala variadic-functions


    【解决方案1】:

    它们是不同的,T* 泄漏到类型签名中,介于 bug 和令人遗憾的特性之间。

    Repeated parameter typed as T* rather than Seq[T]

    【讨论】:

    • 假设不担心破坏现有代码,规范对方法外重复参数的类型有何规定?它是众所周知的还是有争议的?我感觉def f(t: T*) = t中的返回类型应该是Seq[T]
    • 毫无疑问应该是 Seq[T]。
    【解决方案2】:

    是的,它们是不同的。参见,例如,Overriding a repeated class parameter in Scala?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多