我知道有scala.collection.mutable
包提供可变数据结构。但它是如何完成的?
我可以编写自己的可变数据结构并将其传递给要更改的函数吗?
编辑:问题的目标是可用于实现可变数据类型的技术。
答案 0 :(得分:4)
阅读有关在scala中实现自定义集合的this wonderful tutorial。 它应该有你所需要的所有回答问题"如何完成"。
如果您只是在谈论任何数据结构,而不是集合,那么
class Foo(var bar: String)
会做的。但是......不要这样做。虽然,有罕见和孤立的案例,有可变结构是不可避免的,很可能,你很长时间不会遇到这种情况。
我对你的建议是从学习编写好的,惯用的scala代码开始,进入功能性思维模式,数据结构不会在你身下发生变异。学会欣赏它。
答案 1 :(得分:2)
当然,你可以。没有限制,所有不可变数据结构都应在scala.collection.immutable
内,并且所有可变DS应位于scala.collection.mutable
内。为方便起见,标准集合类分为这两个包。您可以在自己喜欢的地方创建课程。