Scala -定义一个具有以下签名的函数,用于搜索列表中的元素n

s3fp2yjn  于 2022-11-29  发布在  Scala
关注(0)|答案(1)|浏览(124)

初始代码为:

def nth(list: List[Int], x: Int) = ???

我试着这样做:

def nth(list: List[Int], n: Int): Option[Int] = 
  list match { 
    case h :: t if n > 0 => nth(t, n - 1) 
    case _ => list
  }

但它不起作用
谢谢你帮我我试试前面的代码

bfrts1fy

bfrts1fy1#

首先,由于返回类型是Option[Int],当list的元素少于n(或者n-1,取决于n是从0开始还是从1开始)时,需要返回None,当到达nth元素时,需要返回Some
例如,简单的递归解可以如下所示(基于零的n):

def nth(list: List[Int], n: Int): Option[Int] =
  list match {
    case h :: t if n > 0  => nth(t, n - 1)
    case h :: t if n == 0 => Some(h)
    case _                => None
  }

相关问题