我输入了一个模式匹配案例
let myfnc fr dr =
match something with
|not important
|not important
| Obj (a,b,c) -> Array.blit rm fr rm dr a; (dr+a,dr)
其中fr
dr
和a
是整数值,而rm
是我的数组的名称
它正在编译,但我收到运行时错误,指出无效的参数Array.blit
。
rm
是一个大小为64
的数组,fr
位于31
下方,dr
位于32
之上,{ {1}}值低于a
可能是什么问题?
答案 0 :(得分:1)
问题在于,您的假设是不成立,还是dr + a >= Array.length rm
。检查您的假设是个好主意:
assert (dr > 32);
assert (fr < 31);
assert (Array.length rm = 64);
assert (a < 5);
assert (dr + a < Array.length rm);