我有全局变量选项对象是学生
def getName(id: Int) : Option[Student] = {
if (student.isDefined){
student.get.name
} else {
""
}
} 如何在这里清除代码?请帮我。非常感谢
答案 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"))