我试图添加元素到列表中,但它总是以所有元素相等的方式结束。 我中添加元素的代码块:为什么这个Scala列表中的所有元素都相等?
var slots = List[Calendar]()
while (dateTimeBegin.getTime().compareTo(dateTimeEnd.getTime()) == -1) {
dateTimeBegin.add(Calendar.MINUTE, 50)
slots = dateTimeBegin :: slots
println(dateTimeBegin.getTime())
}
这println
打印此:
//> Wed May 25 12:50:00 WEST 2016
//| Wed May 25 13:40:00 WEST 2016
//| Wed May 25 14:30:00 WEST 2016
//| Wed May 25 15:20:00 WEST 2016
//| Wed May 25 16:10:00 WEST 2016
当我尝试打印的清单:
for (i <- 0 to slots.length - 1) {
println(slots(i).getTime())
}
我得到这样的输出:
//> Wed May 25 16:10:00 WEST 2016
//| Wed May 25 16:10:00 WEST 2016
//| Wed May 25 16:10:00 WEST 2016
//| Wed May 25 16:10:00 WEST 2016
//| Wed May 25 16:10:00 WEST 2016
我试图以各种方式更改行slots = dateTimeBegin :: slots
。我试图将::
更改为::=
,::+
和很多不同的组合,但从未设法得到正确的结果。
有谁知道我做错了什么?
尝试使用更多功能的方法来避免此类问题(不变性) – pedrorijo91