Есть ли способ перегрузить конструктор не только с одним конструктором? Похоже, что добавление более одного оператора в перегруженный конструктор дает ошибку Application does not take parameters
. Например, если основной конструктор взять String
, следующие будут работать:Scala: Можете ли вы перегрузить конструктор более чем одним конструктором?
def this(num: Int) = {
this(num.toString())
}
Следующие, однако, не будет:
def this(num: Int) = {
val numAsString = num.toString()
this(numAsString)
}
Возможно, релевантный вопрос: http://stackoverflow.com/questions/2400794 – socom1880
Почему «val hi» будет первой линией? Вы всегда можете сделать супервызов первым утверждением. Можете ли вы рассказать о своем примере. Неясно, чего вы пытаетесь достичь. –
s/может всегда/всегда, вызов s/super call/self constructor. 'Выражение конструктора является либо вызовом self constructor this (args1) ... (argsn), либо блоком, который начинается с вызова self constructor. ' –