【发布时间】:2011-01-23 19:28:24
【问题描述】:
澄清一下,当我说多重赋值、并行赋值、解构绑定时,我指的是以下模式匹配 gem
scala> val (x,y) = Tuple2("one",1)
x: java.lang.String = one
y: Int = 1
将"one" 分配给x,将1 分配给y。
我正在尝试做
val (x,y) = "a b".split()
我期待 scala 会尝试将数组与模式匹配,如果数组的长度与模式的长度不匹配,则会抛出运行时异常。
我所有将Array 轻松转换为Tuple2 的尝试都是徒劳的。
scala> Tuple2(Array(1,2):_*)
<console>:7: error: wrong number of arguments for method apply: (T1,T2)(T1, T2)
in object Tuple2
Tuple2(Array(1,2):_*)
^
scala> Tuple2(Array(1,2).toList:_*)
<console>:7: error: wrong number of arguments for method apply: (T1,T2)(T1, T2)
in object Tuple2
Tuple2(Array(1,2).toList:_*)
有没有什么巧妙的方法可以对数组或列表使用多重赋值?
【问题讨论】:
标签: arrays scala functional-programming pattern-matching variable-assignment