F#2d数组索引错误
下面的代码给出了错误F#2d数组索引错误,f#,F#,下面的代码给出了错误运算符“expr.[idx]”已被用于基于此程序点之前的信息的不确定类型的对象。考虑添加其他类型约束< /代码>。我想我已经告诉它了。怎么了 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
运算符“expr.[idx]”已被用于基于此程序点之前的信息的不确定类型的对象。考虑添加其他类型约束< /代码>。我想我已经告诉它了。怎么了
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)
这些小的更改应该可以消除错误:
将板
参数和类型包装在括号中
使用[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
注意,对于原始语法,类型注释是针对tickCell
函数的返回类型,而不是board
参数的类型。