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.