以下代码如何在Scala中运行?
scala> Some(2,true,3, false)
res13: Some[(Int, Boolean, Int, Boolean)] = Some((2,true,3,false))
我没有看到为一些可能需要多个参数定义的apply方法。
答案 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个元素,如果你需要更多,那么你可以使用集合,而不是元组。