Во-первых, это в Scala 2.8, поэтому оно должно быть там! =) * * Тысяча одна
Я работаю над объектами Lift Javascript и хочу иметь следующее:
case class JsVar(varName: String, andThen: String*) extends JsExp {
// ...
def -&(right: String) = copy(andThen=(right :: andThen.toList.reverse).reverse :_*)
}
К сожалению, я получаю следующую ошибку компилятора:
[error] Lift/framework/web/webkit/src/main/scala/net/liftweb/http/js/JsCommands.scala:452: not found: value copy
[error] def -&(right: String) = copy(andThen=(right :: andThen.toList.reverse).reverse :_*)
[error]
Класс case имеет свойства, поэтому должен быть метод copy
, верно?
Если я попытаюсь this.copy
, я получу практически ту же ошибку:
[error] Lift/framework/web/webkit/src/main/scala/net/liftweb/http/js/JsCommands.scala:452: value copy is not a member of net.liftweb.http.js.JE.JsVar
[error] def -&(right: String) = this.copy(andThen=(right :: andThen.toList.reverse).reverse :_*)
[error]
Почему это так и как я могу использовать copy
в моем методе класса case? Или идея, что copy
- это то, что компилятор добавляет после объявления моих методов?
Должен ли я просто сделать это?
case class JsVar(varName: String, andThen: String*) extends JsExp {
// ...
def -&(right: String) = JsVar(varName, (right :: andThen.toList.reverse).reverse :_*)
}