Scala:检查 Scala 中对象的 return 字段值

Scala: check and return field value from object in Scala

I have global variable option object is student

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

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

如果你有一个 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 来获取值或在 None 的情况下的替代值。

小心,使用 "isDefined" 和 "get" 方法是一种不好的做法。

首先,如果 id 是未使用的参数,那么如果您不打算使用它,请将其删除。

利用大小写类.

case class Student(name: String)

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

def getName() => if (student == None) StringUtils.Empty else student.name

您可以在此处使用 fold

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