Skip to content

Instantly share code, notes, and snippets.

@mjhassan
Created October 26, 2019 13:36
Show Gist options
  • Select an option

  • Save mjhassan/f4d72d3de148271161489799d60dc753 to your computer and use it in GitHub Desktop.

Select an option

Save mjhassan/f4d72d3de148271161489799d60dc753 to your computer and use it in GitHub Desktop.
String sclicing make easy
extension String {
public subscript (range: PartialRangeFrom<Int>) -> Substring {
return self[index(startIndex, offsetBy: range.lowerBound)..<endIndex]
}
public subscript (range: PartialRangeUpTo<Int>) -> Substring {
return self[startIndex..<index(endIndex, offsetBy: range.upperBound)]
}
public subscript (range: PartialRangeThrough<Int>) -> Substring {
return self[startIndex...index(endIndex, offsetBy: range.upperBound)]
}
public subscript (range: ClosedRange<Int>) -> Substring {
return self[index(startIndex, offsetBy: range.lowerBound)...index(startIndex, offsetBy: range.upperBound)]
}
public subscript (range: Range<Int>) -> Substring {
return self[index(startIndex, offsetBy: range.lowerBound)..<index(startIndex, offsetBy: range.upperBound)]
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment