在dafny中覆盖数组

时间:2017-12-05 09:21:12

标签: dafny

我正在尝试覆盖方法中的数组。编译器给出了错误“错误:赋值的LHS必须表示一个可变变量”。

_alloca(0);

我是否瞎了眼,失去了什么,或者为什么Dafny不允许这样做?

1 个答案:

答案 0 :(得分:2)

在Dafny中,无法分配方法参数。如果需要在内部更新值,可以使用局部变量。

例如,

var a' := new int[0];

如果您希望此新数组可供调用者使用,您还需要将其返回。

return a';    

所有这一切,如果您正在尝试编写就地排序方法,那么您就不需要做任何此类操作。只需修改a即可。

a[0] := 0;
// ...