Scala在列表上调用.head时返回List [Int]

时间:2016-03-28 21:15:03

标签: list scala optional

我试图获取列表的head元素,然后将值作为选项返回。当我使用list.headOption时出现类型不匹配错误,说list.headOption返回found: Option[List[Int]] required: Option[Int]

这里的功能是:

def valueAt(row: Int, col: Int): Option[Int] = {
    val res = available.get((row, col))
    print(res)
    if (res.size == 1){
      res.headOption
    } else {
    None
  }
  }

我还尝试用res.headOption替换Some(res.head),但我得到了同样的错误。老老实实地输了,因为我已经知道.head会返回列表的第一个元素。

1 个答案:

答案 0 :(得分:1)

可能available.get((row, col))它返回List[List[Int]]。在这种情况下,第一个元素将是List[Int],或Option[List[Int]]使用.headOption

您可以List[List[Int]]转换为执行List[Int]的{​​{1}},但您应该更改res.flatten的返回类型