Ошибка индекса массива F # 2d - PullRequest
1 голос
/ 25 ноября 2011

Приведенный ниже код выдает ошибку The operator 'expr.[idx]' has been used an object of indeterminate type based on information prior to this program point. Consider adding further type constraints.Я думаю, что я сказал это тип.Что не так?

let board = Array2D.init 30 30 (fun x y -> 0)

let tickCell x y board : int[,]  =
    match board  with
    |board when board.[x].[y] = 0-> 1
    |board when board.[x].[y] = 1-> 0
    | _ -> -1

let board2 = Array2D.init 30 30 (fun x y -> tickCell x y board)

1 Ответ

2 голосов
/ 25 ноября 2011

Эти небольшие изменения должны избавиться от ошибки:

  1. Оберните параметр board и введите в скобках
  2. Доступ к ячейке с помощью [x,y]

    let tickCell x y (board : int[,])  =
        match board  with
        |board when board.[x,y] = 0-> 1
        |board when board.[x,y] = 1-> 0
        | _ -> -1
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...