【发布时间】:2018-05-01 13:27:51
【问题描述】:
我写了上面的代码,根据一些规则来定义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 结果
请帮帮忙
最好的问候
【问题讨论】:
-
你好,这是完全不同的,所以我不是在问一个已经回答的问题
-
请不要破坏您的帖子。如果您认为您的问题没有用或不再有用,则应删除,而不是编辑掉所有实际使其成为问题的数据。通过在 Stack Exchange 网络上发布,您已授予 SE 分发该内容的不可撤销的权利(根据 CC BY-SA 3.0 许可)。根据 SE 政策,任何破坏行为都将被撤销。