4

假设我在 scala 中有一个 MyList 类,其中一个列表作为私有成员。是否可以为我的类定义“()”以在给出正索引的情况下返回预期的内容,并在负索引的情况下从结尾开始(就像在 python 中一样)?

4

1 回答 1

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)
   } 
}
于 2013-03-04T14:46:33.310 回答