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

How to compare Rangelt;String.Indexgt; and DefaultBidirectionalIndiceslt;String.CharacterViewgt;?(如何比较 Rangelt;String.Indexgt;和 DefaultBidirectionalIndiceslt;String.CharacterViewgt;?)
本文介绍了如何比较 Range<String.Index>和 DefaultBidirectionalIndices<String.CharacterView>?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

This comparison worked in Swift 2 but doesn't anymore in Swift 3:

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

如何比较 Range 和 DefaultBidirectionalIndices?

How do I compare Range and DefaultBidirectionalIndices?

推荐答案

来自 SE-0065 - 集合和索引的新模型

在 Swift 2 中,collection.indices 返回了一个 Range,但是因为范围是一对简单的索引,并且索引不能再在它们的拥有,Range 不再是可迭代的.

In Swift 2, collection.indices returned a Range<Index>, but because a range is a simple pair of indices and indices can no longer be advanced on their own, Range<Index> is no longer iterable.

为了保持上述代码正常工作,Collection 获取了一个始终可迭代的关联 Indices 类型,...

In order to keep code like the above working, Collection has acquired an associated Indices type that is always iterable, ...

由于 rangeOfComposedCharacterSequence 返回一个 range字符索引,解决方案是使用indices,但是startIndex..:

Since rangeOfComposedCharacterSequence returns a range of character indices, the solution is not to use indices, but startIndex..<endIndex:

myString.rangeOfComposedCharacterSequence(at: myString.startIndex) 
== myString.startIndex..<myString.endIndex

这篇关于如何比较 Range&lt;String.Index&gt;和 DefaultBidirectionalIndices&lt;String.CharacterView&gt;?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
Dropbox Files.download does not start when number of files in folder is gt; 1000(当文件夹中的文件数为1000时,Dropbox Files.Download不会启动)
appearance().setBackgroundImage Not Working On Custom Class(外观().setBackoundImage在自定义类上不起作用)
Show/Hide barButtonItem(显示/隐藏barButtonItem)
java.lang.IllegalStateException: SimpleTypeImpl should not be created for error type(异常:不应为错误类型创建SimpleTypeImpl)