我正在使用光滑的scala play 2 . 我有一个Seq喜欢
val customerList: Seq[CustomerDetail] = Seq(CustomerDetail("id", "status", "name"))
我想在此customerList中添加一个CustomerDetail项 . 我怎样才能做到这一点?我已经试过了
customerList :+ CustomerDetail("1", "Active", "Shougat")
但这没有做任何事情 .
2 回答
两件事情 . 当您使用
:+
时,操作是左关联的,这意味着您调用方法的元素应位于左侧 .现在,
Seq
(在您的示例中使用)引用immutable.Seq
. 附加或前置元素时,它返回包含额外元素的新序列,但不会将其添加到现有序列中 .但附加元素意味着遍历整个列表以添加项目,请考虑预先添加:
一个简化的例子:
值得指出的是,虽然
Seq
追加项运算符:+
是左关联的,但前置运算符+:
是右关联的 .因此,如果您有一个带有
List
元素的Seq
集合:并且你想在Seq中添加另一个“elem”,追加就是这样做的:
和前置是这样做的:
如_1697377中所述:
在处理集合集合时忽略这一点会导致意想不到的结果,即: