2016-05-11 4 views
1

Я пытаюсь проверить программу, которая применяет шифр цеесера к строке. Исходная строка должна быть возвращенаЛучший способ обновить неизменяемую строку в dafny

method caesar(s:string, index:int) 
//apply caesar 

Каков наилучший способ обновить значение строки, похожие на:

s[i] := 'x' 

ответ

1

Там нет никакого способа, чтобы обновить строку в Dafny. Strings are represented как seq<char>, и последовательности неизменны в Дафни. Неизменяемый означает, что последовательность является значением и не может быть изменена.

Если вам нужно сделать in place manipulation, вы можете использовать array<char>.

Если вы можете вернуть new sequence вы можете сделать

var s' := s[i := e]; 
return s'; 
Смежные вопросы