我剛開始玩scala時遇到以下問題。我想簡單地返回一個帶有Int鍵的Map和一個值爲元組的列表。這就是我的方法:如何在scala中返回地圖
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])
而不是地圖?如果是這樣,我怎樣才能讓它返回地圖?
//編輯
我試圖寫一個機器人的JavaScript遊戲。我正在繪製一塊瓷磚。在上面提到的方法中,我試圖找到所有「打開的瓷磚」(沒有完全被其他瓷磚包圍的瓷磚,因此可以移動),並且在返回時我想要有一個Map,其中鍵是具有座標的瓷磚編號值。在下一步中,我想查找是否有可能找到具有相同編號的「打開」瓷磚之間的路徑。
我對你的鑰匙在這裏代表什麼有點困惑 - 你可以爲我們擴大一點嗎?也許這會更容易回答你的問題 – Hamish
@Hamish我編輯了我的問題 – pezetem
@NathanHughes,所以我相信收益率會給我一些Seq,對不對?在這種情況下,也許我會簡單地將結果分組並得到我的地圖? – pezetem