gpt4 book ai didi

scala - 一种在 Scala 中模拟 Class 的索引访问的方法

转载 作者:行者123 更新时间:2023-12-01 07:39:47 24 4
gpt4 key购买 nike

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

喜欢:

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

您可以找到更多详细信息 here .

关于scala - 一种在 Scala 中模拟 Class 的索引访问的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com