Scala:如何编写我自己的可变数组?
Scala: How to write my own mutable array?
我知道 scala.collection.mutable
包提供了可变数据结构。但它是如何完成的呢?
我可以编写自己的可变数据结构并将其传递给要更改的函数吗?
编辑:该问题针对可用于实现可变数据类型的技术。
当然可以。没有限制,所有不可变数据结构都应该在scala.collection.immutable
内,所有可变数据结构都应该在scala.collection.mutable
内。标准合集类为了方便,分为这两个包。您可以在自己喜欢的地方创建自己的类。
阅读 this wonderful tutorial 关于在 Scala 中实现自定义集合的内容。
它应该包含您回答问题 "how it is done".
所需的全部内容
如果你只是在谈论任何数据结构,而不是集合,那么像
class Foo(var bar: String)
会的。但是......不要这样做。虽然在罕见和孤立的情况下,可变结构是不可避免的,但很可能很长一段时间内您都不会遇到这种情况。
我对您的建议是从学习编写良好的、惯用的 Scala 代码开始,并进入函数式思维模式,在这种模式下数据结构不会在您的指导下发生变化。学会欣赏。
我知道 scala.collection.mutable
包提供了可变数据结构。但它是如何完成的呢?
我可以编写自己的可变数据结构并将其传递给要更改的函数吗?
编辑:该问题针对可用于实现可变数据类型的技术。
当然可以。没有限制,所有不可变数据结构都应该在scala.collection.immutable
内,所有可变数据结构都应该在scala.collection.mutable
内。标准合集类为了方便,分为这两个包。您可以在自己喜欢的地方创建自己的类。
阅读 this wonderful tutorial 关于在 Scala 中实现自定义集合的内容。 它应该包含您回答问题 "how it is done".
所需的全部内容如果你只是在谈论任何数据结构,而不是集合,那么像
class Foo(var bar: String)
会的。但是......不要这样做。虽然在罕见和孤立的情况下,可变结构是不可避免的,但很可能很长一段时间内您都不会遇到这种情况。
我对您的建议是从学习编写良好的、惯用的 Scala 代码开始,并进入函数式思维模式,在这种模式下数据结构不会在您的指导下发生变化。学会欣赏。