如何比较Range <String.Index>和DefaultBidirectionalIndices <String.CharacterView>?

Man*_*uel 3 range swift swift3

这种比较适用于Swift 2,但在Swift 3中不再适用:

let myStringContainsOnlyOneCharacter = mySting.rangeOfComposedCharacterSequence(at: myString.startIndex) == mySting.characters.indices

如何比较Range和DefaultBidirectionalIndices?

Mar*_*n R 5

SE-0065 - 收集和指数的新模型

在Swift 2中,collection.indices返回了a Range<Index>,但是因为一个范围是一对简单的索引而且索引不能再自己前进,Range<Index>所以不再可迭代.

为了保持上述代码的工作,Collection已经获得了一个总是可迭代的关联Indices类型,......

由于rangeOfComposedCharacterSequence返回一系列字符索引,解决方案使用indices,但是 startIndex..<endIndex:

myString.rangeOfComposedCharacterSequence(at: myString.startIndex) 
== myString.startIndex..<myString.endIndex
Run Code Online (Sandbox Code Playgroud)