У меня есть класс, который имеет некоторые Vals к нему, мне нужна функция, которая возвращает Vals на основе строки, переданной вшаблон соответствует строке в поле
case class AThing(name: String, description: String)
object AThing {
val FIRST_THING = AThing("FIRST_THING", "A first thing desc")
val SECOND_THING = AThing("SECOND_THING", "A second thing desc")
val THIRD_THING = AThing("THIRD_THING", "A third thing desc")
}
Теперь у меня есть следующее решение:
def get(name: String): AThing = {
name match {
case "FIRST_THING" => FIRST_THING
case "SECOND_THING" => SECOND_THING
case "THIRD_THING" => THIRD_THING
}
}
есть ли лучший образец для этого .. Я клянусь, что я помню, что-то вдоль линий этого:
def get(name: String): AThing = {
name match {
case `name` => AThing.`name`
// OR
case `name` => AThing.{{name}}
}
}
Спасибо.
Второй метод здесь не применим. Единственный другой способ, которым я могу думать о том, чтобы найти «AThing» по имени, - это иметь vals в «List» и использовать 'find'. –