我刚开始玩scala,我遇到了以下问题。我想简单地返回一个以Int作为键的Map和值的元组列表。这是我的方法:
def findOpenTiles(board: Array[Array[Int]]): Map[Int, List[(Int, Int)]]={
val openTilesMap = Map[Int, List[(Int, Int)]]
for (x <- 0 until Constant.boardWidth; y <- 0 until Constant.boardHeight) yield {
if (hasOpenTile(board, x, y)){
// add to values to openTilesMap
}
}
openTilesMap
}
但是我的IDE显示错误:
Expression of type (Seq[(Int, List[Int, Int])]) => Map[Int, List[(Int, Int)]] doesn't conform to expected type Map[Int, List[(Int, Int)]]
这是否意味着val openTilesMap = Map[Int, List[(Int, Int)]]
创建Seq of Tuples (Int, List[Int, Int])
而非地图?如果是这样,我怎么能让它返回Map?
//编辑
我试图将机器人写入javascript游戏。我正在绘制一块瓷砖。在上面提到的方法中,我试图找到所有&#34;打开的瓷砖&#34; (没有被其他图块完全包围的图块,因此可以被移动)并且在返回中我想要一个图,其中键是具有坐标作为值的图块编号。在下一步中,我想找到是否有可能找到&#34; open&#34;之间的路径。相同数量的瓷砖。
答案 0 :(得分:1)
我认为问题就在于行
val openTilesMap = Map[Int, List[(Int, Int)]]
你应该试试这个:
val openTilesMap: Map[Int, List[(Int, Int)]] = Map()
您的版本将类型Map[Int, List[(Int, Int)]]
分配给值openTilesMap
。