Я работаю, чтобы узнать Scala - исходя из фона С++. я пытаюсь написать небольшой класс для приложения отслеживания задач. Я взламываю помогите мне узнать, как закодировать Scala.
Кажется, что это должно быть просто, но почему-то это ускользает от меня:
package com.catenacci.tts
class Task(val ID:Int, val Description:String) {
val EmptyID = 0
val EmptyDescription = "No Description"
def this() = this(EmptyID,EmptyDescription)
def this(ID:Int)={
this(ID,EmptyDescription)
}
def this(Description:String)={
this(EmptyID,Description)
}
}
Я пытаюсь предоставить три конструктора: Task (ID, Description), Задача (ID), Задача (Описание). В последних двух случаях я хочу инициализировать значения до постоянных значений, если одно из значений не предоставленный абонентом. И я хочу, чтобы проверить это снаружи класса для целей единичного тестирования. Поэтому я решил положить в два public vals позволили бы мне проверить извне класса, чтобы сделать что мое состояние - это то, что я ожидаю.
Однако по какой-то причине этот код не будет компилироваться. Я получаю следующую ошибку:
error: not found: value EmptyID
и
error: not found: value EmptyDescription
Так что мне не хватает? Я работаю через "Программирование в Scala", поэтому если есть простой ответ на этот вопрос, пожалуйста, дайте мне страницу номера. Я не против читать, но просматриваю код на стр. 60 и стр. 62, я не понимаю, почему этот код не работает.
Я предполагаю, что это имеет какое-то отношение к тому, что это методы конструктора и что, возможно, два vals не инициализируются до конца конструкторов. Если в этом случае есть некоторые способ получить эффект, который я ищу?