【问题标题】:Some with multiple arguments creates Option of Tuple一些具有多个参数的创建元组选项
【发布时间】:2015-01-03 17:18:47
【问题描述】:

以下代码在 Scala 中如何工作?

scala> Some(2,true,3, false)
res13: Some[(Int, Boolean, Int, Boolean)] = Some((2,true,3,false))

我没有看到为一些可以接受多个参数的应用定义方法。

【问题讨论】:

标签: scala scala-collections scala-option


【解决方案1】:

如果不适合的话,多个参数会被隐式适配成一个元组;任何方法都会发生这种情况,Some 没有什么特别之处:

def doSomething(a: Any) = {...}
doSomething(2, true, 3, false)

如果发生这种情况,您可以(而且,我认为应该;这是一个倾向于掩盖编程错误的错误功能)通过传递标志 -Ywarn-adapted-args 使编译器发出警告。有关类似推荐标志的列表,请参阅 here

【讨论】:

    【解决方案2】:

    Some(2,true,3, false)Some(new Tuple4(2,true,3, false)) 的语法糖。

    这就是为什么类型是Some[(Int, Boolean, Int, Boolean)]

    它在 22 个元素之前有效,如果您需要更多,那么您可以使用集合,而不是元组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 2021-06-27
      • 2013-04-29
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 1970-01-01
      相关资源
      最近更新 更多