Scala 案例类 期权价值链

Amb*_*h B 0 scala scala-collections

case class Person(@BsonProperty("first_name") firstName:Option[String],@BsonProperty("second_name")  secondName:Option[String],@BsonProperty("person_age") var  age:Int)


val me = Some(Person(Some(Ambareesh),Some(B),23))

      Or

val me = None

      Or

val me = Some(Person(Some(Ambareesh),None,23))

     Or

val me = Some(Person(None,None,23))


someOperation(me.secondName / None) //How can I implement this behavior in single line.
someOperation(me.firstName / None)


def someOperation(name:Option[String]){
   //Do ...
 }
Run Code Online (Sandbox Code Playgroud)

我对 method 的参数( Person 的实例)存有疑问someOperation。参数本身是一个选项值,字段也是选项。如果其中之一是None(argument 或 argument.fieldName),我希望None将字段值作为 Some(fieldValue) 返回。是否可以?

Ale*_*nov 5

someOperation(me.flatMap(_.secondName))
Run Code Online (Sandbox Code Playgroud)

请参阅ScalaDoc

您可以用于mapOption属性:me.map(_.age)is Option[Int]