【发布时间】:2022-01-04 06:02:18
【问题描述】:
可以在 Scala 中将元素附加到列表中吗,例如,我有一个列表,即
var li = List (1, 2, 3, 4, 5)
我可以将6 附加到列表中吗?如果可以的话怎么办?
如果是元组,我该如何追加,例如,
var tu = (1, "Hi", 20000)
我可以将"Hello" 字符串附加到它吗?
【问题讨论】:
可以在 Scala 中将元素附加到列表中吗,例如,我有一个列表,即
var li = List (1, 2, 3, 4, 5)
我可以将6 附加到列表中吗?如果可以的话怎么办?
如果是元组,我该如何追加,例如,
var tu = (1, "Hi", 20000)
我可以将"Hello" 字符串附加到它吗?
【问题讨论】:
List 和 Tuple 都是不可变结构,因此要附加或前置一个元素,您需要创建一个新的 List/Tuple。
val oldLst = List(1,2,3,4,5)
val newLst = oldLst :+ 6
附加到List 是一个线性运算,O(n)。前置时效率更高。
val fromZero = 0 :: newLst
Scala 3 提供了增强的Tuple 功能,而这在早期的 Scala 版本中是不可用的。
val threeTup = (1, "Hi", 20000)
val fourTup = threeTup ++ "Hello" *: EmptyTuple
注意:经验丰富的 Scala 实践者从不使用var。
【讨论】: