Scala - 通过同一对象的另一个变量获取变量的值

时间:2017-12-04 04:52:04

标签: scala

UML class diagram

从UML图中,它显示 getGrade(String)是类Quiz的一种方法。我的理解是字符串应该是测验的标题。但是,你如何根据你输入的标题获得测验得分?

这个问题要求我们" 使用给定的getGrade函数中的Quiz评分方案为Quiz类编写Scala代码。对于70以上的分数,等级为A. "。

以下是我的代码,但它无法正常工作。

def getGrade(title:String):String={
    if(title.score >= 70)
        val grade:String = A
}

1 个答案:

答案 0 :(得分:0)

val是一个关键字,用于创建存储的不可修改的字段或局部变量。在您的情况下,您可能应该将score类型的Double字段映射到String表示,这样这是一个计算而不是存储的信息。 String类中额外的availableScore参数和Assignment字段的目的是什么目的尚不清楚。这是我最好的猜测:

abstract class Assignment(val title: String, val score: Double, val availableScore: Double) {
  def grade(studentName: String): String
}

class Quiz(title: String, score: Double, availableScore: Double) extends Assignment(title, score, availableScore) {
  override def grade(studentName: String): String = {
    val grade = score match {
      case s if s >= 70 => "A"
      case s if s >= 50 => "B"
      // map rest ranges from score to grade
      case _ => "F"
    }

    s"$studentName's grade for quiz '$title' is $grade"
  }
}