林Scala的模式匹配打,試圖讓FindNext中發現的功能列表中的下一個元素:使用模式匹配
findNext(1,List(1,2,3)) == 2
findNext(2,List(1,2,3)) == 3
findNext(3,List(1,2,3)) == 1
def findNext(needle : Int, haystack : List[Int]): Int = {
haystack match {
case Nil => /* handle it */
case needle::Nil => needle
case front::needle::back => back.head
case needle::back::Nil => back.head
}
}
我可以使它只工作在平凡的情況。
可以這樣使用模式匹配來完成?我知道我可以使用列表中的方法使其工作,但這只是一個玩具程序。
+1表示@tailrec,因爲這是處理「下一個」的更直接簡單的方法。 – wheaties 2013-03-28 03:52:24