在 dafny 中更新不可变字符串的最佳方法
Best way to update an immutable string in dafny
我正在尝试验证一个将凯撒密码应用于字符串的程序。必须返回原始字符串
method caesar(s:string, index:int)
//apply caesar
更新字符串值的最佳方法是什么,类似于:
s[i] := 'x'
无法在 Dafny 中更新字符串。 Strings are represented 为 seq<char>
,并且序列在 Dafny 中是不可变的。不可变意味着序列是一个值,不能改变。
如果您需要 in place manipulation,您可以使用 array<char>
。
如果你可以return一个new sequence你可以
var s' := s[i := e];
return s';
我正在尝试验证一个将凯撒密码应用于字符串的程序。必须返回原始字符串
method caesar(s:string, index:int)
//apply caesar
更新字符串值的最佳方法是什么,类似于:
s[i] := 'x'
无法在 Dafny 中更新字符串。 Strings are represented 为 seq<char>
,并且序列在 Dafny 中是不可变的。不可变意味着序列是一个值,不能改变。
如果您需要 in place manipulation,您可以使用 array<char>
。
如果你可以return一个new sequence你可以
var s' := s[i := e];
return s';