Tha*_*gan 5 scala pattern-matching
我有一个针对具有大量字段的案例类的匹配语句。我是否能够按名称捕获其中一个字段并忽略其余字段而不用下划线指定其他字段?当我想要的东西嵌套得很深时,这尤其难以做到。
这是我现在所拥有的:
record match {
case MyRecordType(_, _, _, MyNestedType(_, _, namedFieldAsVar, _), _, _, _) =>
doStuffWith(namedFieldAsVar)
Run Code Online (Sandbox Code Playgroud)
我想做这样的事情:
record match {
case MyRecordType { nested = MyNestedType { namedFieldAsVar } } =>
doStuffWith(namedFieldAsVar)
}
Run Code Online (Sandbox Code Playgroud)
其他语言支持像下面这样的模式匹配(Rust),Scala 是否提供类似的东西?
match record {
MyRecordType { named_field_as_var, .. } => do_stuff_with(named_field_as_var)
}
Run Code Online (Sandbox Code Playgroud)