(重新)在scala中定义()

时间:2013-03-04 14:20:51

标签: scala

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

1 个答案:

答案 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)
   } 
}