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