一些有多个参数创建了选项元组

时间:2015-01-03 17:18:48

标签: scala scala-collections scala-option

以下代码如何在Scala中运行?

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

我没有看到为一些可能需要多个参数定义的apply方法。

2 个答案:

答案 0 :(得分:3)

多个参数隐含地适用于制作元组,如果它们不合适的话;对于任何方法都会发生这种情况,这里Some没有什么特别之处:

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

你可以(并且,我认为,应该;它是一个容易掩盖编程错误的错误)使编译器发出警告,如果发生这种情况,通过传递标志-Ywarn-adapted-args。请参阅here以获取类似推荐标志的列表。

答案 1 :(得分:1)

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

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

的原因

它可以工作到22个元素,如果你需要更多,那么你可以使用集合,而不是元组。