Я пытаюсь проверить программу, которая применяет шифр Цезаря к строке. Исходная строка должна быть возвращена
method caesar(s:string, index:int)
//apply caesar
Каков наилучший способ обновить значение строки, например:
s[i] := 'x'
Я пытаюсь проверить программу, которая применяет шифр Цезаря к строке. Исходная строка должна быть возвращена
method caesar(s:string, index:int)
//apply caesar
Каков наилучший способ обновить значение строки, например:
s[i] := 'x'
В Dafny нет возможности обновить строку. Строки представлены как seq<char>
, а последовательности неизменяемы в Dafny. Неизменяемость означает, что последовательность является значением и не может быть изменена.
Если вам нужно выполнить манипуляцию на месте вместо этого вы можете использовать array<char>
.
Если вы можете вернуть новую последовательность а> ты можешь сделать
var s' := s[i := e];
return s';