前言
-
Range:結構體,這個結構體用來表示一個區間的范圍。
public struct Range<Element : ForwardIndexType> : Equatable, CollectionType, CustomStringConvertible, CustomDebugStringConvertible -
NSRange:結構體,這個結構體用來表示事物的一個范圍,通常是字符串里的字符范圍或者集合里的元素范圍。
public typealias NSRange = _NSRange public struct _NSRange { public var location: Int public var length: Int public init() public init(location: Int, length: Int) } extension NSRange { public init(_ x: Range<Int>) @warn_unused_result public func toRange() -> Range<Int>? }
1、Range 結構體變量的創建與調用
// Range 結構體變量的創建與賦值
let str = "hello world"
// 1..<9
let range1:Range = Range(1...8)
// 2..<5
var range2:Range = Range(2..<5)
// 3..<7
let range3:Range = str.startIndex.advancedBy(3)...str.startIndex.advancedBy(6)
// Range 值的修改
range2.startIndex = 3
range2.endIndex = 6
// Range 值的判斷
let bl:Bool = range2.isEmpty
2、NSRange 結構體變量的創建與調用
// NSRange 結構體變量的創建與賦值
// 先定義變量,再賦值
var nsRange1:NSRange = NSRange()
nsRange1.location = 6;
nsRange1.length = 1;
// 定義時直接賦值
let nsRange2:NSRange = NSRange(location: 7, length: 2)
// 由區間值創建
let nsRange3:NSRange = NSRange(2...9)
// 由方法創建
let nsRange4:NSRange = NSMakeRange(1, 8)
// NSRange 結構體變量值的調用
print("\(nsRange1.location), \(nsRange1.length)")
3、NSRange 與 Range 的相互轉換
// Range 轉 NSRange
let nsRange:NSRange = NSRange(1...10)
// NSRange 轉 Range
let range:Range? = nsRange.toRange()
4、NSRange 與 String 的相互轉換
let nsRange1 = NSRange(location: 7, length: 2)
// NSRange 轉 String
let string:String = NSStringFromRange(nsRange1)
// String 轉 NSRange
let nsRange:NSRange = NSRangeFromString(string)
