Is there a way to give a reference name to a variable when multiple cases are combined using match
in Scala
?
Code:
Assume Gender
enum has three possible values like male
, female
and other
.
(nameOption, genderOption) match {
case (Some(name), Some(Gender.Male)) | (Some(name), Some(Gender.FeMale))=> s"$name gender is either male or female"
case (None, Some(Gender.Male)) | (None, Some(Gender.FeMale)) => //some print statement
case (Some(name), Some(Gender.Other)) => //some print statement
case _ => //some print statement
}
First case case (Some(name), Some(Gender.Male)) | (Some(name), Some(Gender.FeMale))
is complier error as name
is already defined in scope.
If I don't combine cases in my actual code cyclomatic complexity increases.