【问题标题】:A way to simulate indexed access for Class in Scala一种在 Scala 中模拟 Class 的索引访问的方法
【发布时间】:2012-09-13 03:25:44
【问题描述】:

我如何实现一个可以像数组一样询问的类,提供索引设置器?

喜欢:

val k = new MyKls(size)
k(0) = 2  //<<-- I want this kind of functionality.

谢谢。

【问题讨论】:

    标签: scala


    【解决方案1】:

    听起来您正在寻找的是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

    【讨论】:

    猜你喜欢
    • 2013-11-07
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 2019-08-11
    • 2014-03-15
    相关资源
    最近更新 更多