Я довольно новичок в Scala, исходя из базового Java-фона. Я посмотрел, как реализовать конструкторы классов и как обеспечить некоторую логику в установщике для поля этого класса.
class SetterTest(private var _x: Int) {
def x: Int = _x
def x_=(x: Int) {
if (x < 0) this._x = x * (-1)
}
}
Параметру конструктора присваивается поле _x
, поэтому установщик не используется. Что если я захочу использовать логику сеттера?
object Test {
def main(args: Array[String]) {
val b = new SetterTest(-10)
println(b.x) // -10
b.x = -10
println(b.x) // 10
}
}
В Java я мог бы использовать установщик в конструкторе для принудительного использования этого образца логики.
Как бы я этого достиг в scala?