Scala:检查并从Scala中的对象返回字段值

时间:2018-08-15 04:32:08

标签: scala playframework scala-collections

  

我有全局变量选项对象是学生

def getName(id: Int) : Option[Student] = {
if (student.isDefined){
  student.get.name
} else {
  ""
}

} 如何在这里清除代码?请帮我。非常感谢

3 个答案:

答案 0 :(得分:3)

您可以在此处使用fold

student.fold(""){ _.name }

答案 1 :(得分:1)

如果您的变量类型为Option [Student]

case class Student(name:String)

val student:Option[Student] = Option(Student("a name"))

您可以使用map和getOrElse清理代码

student.map(_.name).getOrElse("")

map将您的Option [Student]转换为Option [String],即Some(“ name”)或None。

然后您可以使用getOrElse来获取值,或者在无的情况下使用替代值。

请注意,使用“ isDefined”和“ get”方法是一种不好的做法。

答案 2 :(得分:0)

第一件事,如果decode("ascii")是未使用的参数,那么如果您不打算使用它,则将其删除。

利用案例类。

id

case class Student(name: String)

val student = Option(new Student("ABC"))