前言
-
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)