---
title: "index(_:offsetBy:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/string/index(_:offsetby:)"
---

# index(_:offsetBy:)

Returns an index that is the specified distance from the given index.

## Declaration

```swift
func index(_ i: String.Index, offsetBy distance: Int) -> String.Index
```

## Parameters

- `i`: A valid index of the collection.
- `distance`: The distance to offset i.

## Return Value

Return Value An index offset by distance from the index i. If distance is positive, this is the same value as the result of distance calls to index(after:). If distance is negative, this is the same value as the result of abs(distance) calls to index(before:).

## Discussion

Discussion The following example obtains an index advanced four positions from a string’s starting index and then prints the character at that position. let s = "Swift" let i = s.index(s.startIndex, offsetBy: 4) print(s[i]) // Prints "t" The value passed as distance must not offset i beyond the bounds of the collection. note: O(n), where n is the absolute value of distance.

## See Also

### Manipulating Indices

- [startIndex](swift/string/startindex.md)
- [endIndex](swift/string/endindex.md)
- [index(after:)](swift/string/index(after:).md)
- [formIndex(after:)](swift/string/formindex(after:).md)
- [index(before:)](swift/string/index(before:).md)
- [formIndex(before:)](swift/string/formindex(before:).md)
- [index(_:offsetBy:limitedBy:)](swift/string/index(_:offsetby:limitedby:).md)
- [formIndex(_:offsetBy:)](swift/string/formindex(_:offsetby:).md)
- [formIndex(_:offsetBy:limitedBy:)](swift/string/formindex(_:offsetby:limitedby:).md)
- [distance(from:to:)](swift/string/distance(from:to:).md)
- [indices](swift/string/indices-swift.property.md)
