【发布时间】:2011-08-20 05:16:49
【问题描述】:
有没有办法在不使用临时变量和启动新语句的情况下操作元组的多个值?
假设我有一个返回元组的方法,我想内联处理这些值。
例如如果我想在某个点拆分字符串并反转片段
def backToFront(s: String, n:Int) = s.splitAt(n)...
我可以的
val (a, b) = s.splitAt(n)
b + a
(需要临时变量和新语句)或
List(s.splitAt(n)).map(i => i._2 + i._1).head
(有效,但似乎有点脏,为此创建一个元素列表)或
s.splitAt(n).swap.productIterator.mkString
(适用于这个特定示例,但只是因为恰好有一个 swap 方法可以满足我的要求,所以它不是很通用)。
元组上的zipped 方法似乎只适用于列表元组。
再举一个例子,如何在一个语句中将元组('a, 'b, 'c) 变成('b, 'a, 'c)?
【问题讨论】: