【发布时间】:2012-09-13 03:25:44
【问题描述】:
我如何实现一个可以像数组一样询问的类,提供索引设置器?
喜欢:
val k = new MyKls(size)
k(0) = 2 //<<-- I want this kind of functionality.
谢谢。
【问题讨论】:
标签: scala
我如何实现一个可以像数组一样询问的类,提供索引设置器?
喜欢:
val k = new MyKls(size)
k(0) = 2 //<<-- I want this kind of functionality.
谢谢。
【问题讨论】:
标签: scala
听起来您正在寻找的是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
您可以找到更多详细信息here。
【讨论】: