我正在尝试覆盖方法中的数组。编译器给出了错误“错误:赋值的LHS必须表示一个可变变量”。
_alloca(0);
我是否瞎了眼,失去了什么,或者为什么Dafny不允许这样做?
答案 0 :(得分:2)
在Dafny中,无法分配方法参数。如果需要在内部更新值,可以使用局部变量。
例如,
var a' := new int[0];
如果您希望此新数组可供调用者使用,您还需要将其返回。
return a';
所有这一切,如果您正在尝试编写就地排序方法,那么您就不需要做任何此类操作。只需修改a
即可。
a[0] := 0;
// ...