我当前使用的substringWithRange()具有开始索引和长度:

let str = "Hello World"

let index = 0
let length = 3

str.substringWithRange(Range<String.Index>(start: str.startIndex.advancedBy(index), end: str.startIndex.advancedBy(index + length))) // "Hel"

这很好,但有没有办法,使用更简单更优雅的语法?
我可以使用NSRange,但我只想使用纯Swift代码。

最佳答案

extension String
{
    public func substringWithRange(range: Range<Index.Distance>) -> String
    {
        return substringWithRange(startIndex.advancedBy(range.startIndex)..<startIndex.advancedBy(range.endIndex))
    }
}

str.substringWithRange(index..<index + length)

10-08 07:45