gpt4 book ai didi

scala - 操作元组

转载 作者:行者123 更新时间:2023-12-04 09:55:51 25 4
gpt4 key购买 nike

有没有办法在不使用临时变量和启动新语句的情况下操作元组的多个值?

假设我有一个返回元组的方法,我想对这些值进行内联处理。

例如如果我想在某个点拆分一个字符串并反转这些片段

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)在一份声明中?

最佳答案

元组只是方便的返回类型,并不假设您会使用它进行复杂的操作。还有类似的discussion在 Scala 论坛上。

关于最后一个例子,找不到比模式匹配更好的了。

('a, 'b, 'c) match { case (a, b, c) => (b, a ,c) }

关于scala - 操作元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com