Я написал код выше, чтобы определить тип String на основе некоторых правил.
def dataType (input:String) : String = input match {
case input if input.startsWith("Q") => "StringType";
case input if (input.startsWith("8") && !(input.contains("F"))) => "IntegerType"
case input if (input.startsWith("8") && (input.contains("F"))) => "FloatType"
case _ => "UnknowType";
}
Этот код работает хорошо, но я хочу оптимизировать его, избегая использования условий If. Я хочу, чтобы он основывался только на сопоставлении с образцом без использования операторов if.
Я пытался изменить его таким образом, но он дает мне плохие результаты:
def dataType (input:String) : String = input match {
case "startsWith('Q')" => "StringType"
case "startsWith('8') && !(contains('F')))" => "IntegerType"
case "startsWith('8') && (contains('F')))" => "FloatType"
case _ => "UnknowType";
}
это всегда дает мне результат UnknownType
Любая помощь с этим, пожалуйста
С наилучшими пожеланиями