假设我在scala中有一个MyList类,列表作为私有成员。是否有可能为我的类定义“()”以在给定正索引的情况下返回预期的事物,并且在负的情况下从结束开始(就像在python中一样)?
答案 0 :(得分:7)
这可以通过apply
方法完成:
class PythonicArray {
private val underlying = Array(1,2,3,4)
def apply(n: Int) = {
val i = if (n < 0) (underlying.length + n) else n
underlying(i)
}
}