1

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

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

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

4

2 回答 2

3

如果多个参数不适合,则隐式调整为创建一个元组;任何方法都会发生这种情况,这里没有什么特别之处Some

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

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

于 2015-01-03T17:25:26.380 回答
1

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

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

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

于 2015-01-03T17:25:29.850 回答