我如何实现一个可以像数组一样询问的类,提供索引设置器?
像:
val k = new MyKls(size)
k(0) = 2 //<<-- I want this kind of functionality.
谢谢。
我如何实现一个可以像数组一样询问的类,提供索引设置器?
像:
val k = new MyKls(size)
k(0) = 2 //<<-- I want this kind of functionality.
谢谢。
听起来您正在寻找的是update
方法。如果你定义了这个方法,那么 Scala 将在k(0) = 2
语法中使用它。它类似于apply
允许您使用k(0)
访问器语法的方法。
这是一个简短的示例:
import scala.collection.mutable.Buffer
class MyKls(size: Int) {
val buf = Buffer.fill(size)(0)
def apply(index: Int) = buf(index)
def update(index: Int, newValue: Int) { buf(index) = newValue }
override def toString = buf.mkString("[", ", ", "]")
}
val k = new MyKls(5)
println(k) // [0, 0, 0, 0, 0]
k(0) = 2
println(k) // [2, 0, 0, 0, 0]
println(k(0)) // 2
您可以在此处找到更多详细信息。