以下代码在 Scala 中如何工作?
scala> Some(2,true,3, false)
res13: Some[(Int, Boolean, Int, Boolean)] = Some((2,true,3,false))
我没有看到为一些可以接受多个参数的应用方法定义。
以下代码在 Scala 中如何工作?
scala> Some(2,true,3, false)
res13: Some[(Int, Boolean, Int, Boolean)] = Some((2,true,3,false))
我没有看到为一些可以接受多个参数的应用方法定义。
如果多个参数不适合,则隐式调整为创建一个元组;任何方法都会发生这种情况,这里没有什么特别之处Some
:
def doSomething(a: Any) = {...}
doSomething(2, true, 3, false)
如果发生这种情况,您可以(并且,我认为应该;这是一个倾向于掩盖编程错误的错误功能)通过传递 flag 使编译器发出警告-Ywarn-adapted-args
。有关类似推荐标志的列表,请参见此处。
Some(2,true,3, false)
是 . 的语法糖Some(new Tuple4(2,true,3, false))
。
这就是为什么类型是Some[(Int, Boolean, Int, Boolean)]
它可以工作到 22 个元素,如果您需要更多元素,那么您可以使用集合,而不是元组。