让我们举一个例子,商店就是我的班级。
class store(val a:Int) { }
在我想要创建商店列表的代码中。
val list : List[store] = new List[store]()
如何在同一个列表中添加商店?
答案 0 :(得分:1)
首先,将类名称大写通常是一个好主意。
scala> class Store(val a:Int) { }
defined class Store
scala> val list : List[Store] = List.empty
list: List[Store] = List()
scala> val newList = new Store(4) :: list
newList: List[Store] = List(Store@243306de)
默认情况下,您的列表是不可变的,因此每次添加元素时都会有一个新列表。
scala> val newerList = new Store(71) :: newList
newerList: List[Store] = List(Store@30f57af0, Store@243306de)
<强>附录强>
如果您需要一个可变列表(通常不推荐),您可以尝试以下方法。
scala> import scala.collection.mutable.MutableList
import scala.collection.mutable.MutableList
scala> val myList: MutableList[Store] = MutableList.empty
myList: scala.collection.mutable.MutableList[Store] = MutableList()
scala> myList += new Store(56)
res322: myList.type = MutableList(Store@6421614e)
scala> myList += new Store(29)
res323: myList.type = MutableList(Store@6421614e, Store@85b26)
scala> myList += new Store(11)
res324: myList.type = MutableList(Store@6421614e, Store@85b26, Store@5d2f7883)
可变变量被认为是不良的风格,并且妨碍了正确的功能编程。
答案 1 :(得分:0)
要将元素添加到列表的开头,请使用::
:
val l = List(1, 2, 3)
val l1 = 5 :: l // List(5, 1, 2, 3)
或
val l1 = l.::(5)
要将元素添加到列表末尾,请使用:+
:
val l2 = l :+ 5 // List(1, 2, 3, 5)
因此,要将store
object 添加到列表的末尾(尽管效率不高),请写下:
val s = new Store(1)
val newList = list :+ s // list is immutable