在这种情况下如何应用模式匹配

MyT*_*tle 1 scala pattern-matching

我如何将模式匹配应用于此代码?所以它看起来像功能风格的代码:

  def getIndex(i: Int): Option[Int] = {
    if (check0(i) == Some) {
      check0(i)
    }
    else if (check1(i) == Some) {
      check1(i)
    }
    else if (check2(i) == Some) {
      check2(i)
    }
    else if (check3(i) == Some) {
      check3(i)
    }
    else {
      None
    }
  }
Run Code Online (Sandbox Code Playgroud)

方法check0, check1, check2, check3全部返回Option[Int]

om-*_*nom 6

不是模式匹配,但应该做的诀窍:

checkTop(clickedIndex)    orElse 
checkBottom(clickedIndex) orElse 
checkLeft(clickedIndex)   orElse 
checkRight(clickedIndex)
Run Code Online (Sandbox Code Playgroud)

orElse是为Option定义的方法.定义选项时,它会返回一个选项本身,否则会尝试替代选项.

  • 你到底需要orElse None吗? (3认同)