(重新)在scala中定义()

use*_*000 4 scala

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

om-*_*nom 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)
   } 
}
Run Code Online (Sandbox Code Playgroud)