Ошибка, которую я вижу, это заголовок: Cannot invoke 'append' with an argument list of type '(Range<String.Index>)'
Практикуя чередование строк в Swift, я пытаюсь добавить подстроку одной строки к другой. Этот другой вопрос касается добавления одной строки к другой, что не является моим вопросом. И этот другой вопрос совершенно другой выброшена ошибка. Документация Swift по строкам и символам не кажется охватывает добавление подстроки к строке.
Эта строка (и аналогичная) выдает ошибку.
result.append(str2.index(after: str2Index)..<str2.endIndex)
Как решить эту проблему и добавить подстроку в строку?
var str1 = "abcde"
var str2 = "fgh"
print(str1) // prints 'abcde'
print(str2) // prints 'fgd'
var str1Index = str1.startIndex
var str2Index = str2.startIndex
var result = String()
var resultIndex = result.startIndex
while str1Index != str1.endIndex && str2Index != str2.endIndex {
result.insert(str1[str1Index],at: resultIndex)
str1Index = str1.index(after: str1Index)
resultIndex = result.index(after: resultIndex)
result.insert(str2[str2Index], at: resultIndex)
resultIndex = result.index(after: resultIndex)
str2Index = str2.index(after: str2Index)
}
if str1Index != str1.endIndex {
// This does not work, throws above mentioned error
result.append(str2.index(after: str2Index)..<str2.endIndex)
} else if str2Index != str2.endIndex {
// This does not work, throws above mentioned error
result.append(str1.index(after: str1Index)..<str1.endIndex)
}
print(result) // should print 'afbgchde'
PS, исправления или комментарии к моему алгоритму также приветствуются :)
result
равноString
, аindex(after
возвращаетRange<String.Index>
. Это несоответствие типов. - person vadian   schedule 22.10.2018