---
title: Escapable
framework: swift
role: symbol
role_heading: Protocol
path: swift/escapable
---

# Escapable

A type whose values can persist beyond their immediate local scope.

## Declaration

```swift
protocol Escapable
```

## Overview

Overview Escapable values can be assigned to global or static variables, returned from functions, captured by escaping closures, and so on. All Swift types implicitly conform to this protocol by default, allowing them to be moved across scopes freely because they lack any lifetime dependencies. In contrast, values of types that suppress their implicit conformance to Escapable (by writing ~Escapable) carry a lifetime dependency. These dependencies ensure the ~Escapable value does not live longer than the value it depends on. Explicit lifetime dependency annotations may be required when working with these types. In generic contexts, ~Escapable works much in the same way as ~Copyable. It allows functions and types to work with values that may or may not be Escapable, and types can be conditionally Escapable based on their generic arguments. A conformance requirement for Escapable is automatically inferred in extensions and for generic type parameters, unless suppressed with ~Escapable.

## Relationships

### Conforming Types

- [Anchor](regexbuilder/anchor.md)
- [AnyBidirectionalCollection](swift/anybidirectionalcollection.md)
- [AnyCollection](swift/anycollection.md)
- [AnyHashable](swift/anyhashable.md)
- [AnyIterator](swift/anyiterator.md)
- [AnyKeyPath](swift/anykeypath.md)
- [AnyRandomAccessCollection](swift/anyrandomaccesscollection.md)
- [AnyRegexOutput](swift/anyregexoutput.md)
- [AnySequence](swift/anysequence.md)
- [Array](swift/array.md)
- [ArraySlice](swift/arrayslice.md)
- [AsyncCompactMapSequence](swift/asynccompactmapsequence.md)
- [AsyncDropFirstSequence](swift/asyncdropfirstsequence.md)
- [AsyncDropWhileSequence](swift/asyncdropwhilesequence.md)
- [AsyncFilterSequence](swift/asyncfiltersequence.md)
- [AsyncFlatMapSequence](swift/asyncflatmapsequence.md)
- [AsyncMapSequence](swift/asyncmapsequence.md)
- [AsyncPrefixSequence](swift/asyncprefixsequence.md)
- [AsyncPrefixWhileSequence](swift/asyncprefixwhilesequence.md)
- [AsyncStream](swift/asyncstream.md)
- [AsyncStream.Continuation](swift/asyncstream/continuation.md)
- [AsyncStream.Continuation.Termination](swift/asyncstream/continuation/termination.md)
- [AsyncThrowingCompactMapSequence](swift/asyncthrowingcompactmapsequence.md)
- [AsyncThrowingDropWhileSequence](swift/asyncthrowingdropwhilesequence.md)
- [AsyncThrowingFilterSequence](swift/asyncthrowingfiltersequence.md)
- [AsyncThrowingFlatMapSequence](swift/asyncthrowingflatmapsequence.md)
- [AsyncThrowingMapSequence](swift/asyncthrowingmapsequence.md)
- [AsyncThrowingPrefixWhileSequence](swift/asyncthrowingprefixwhilesequence.md)
- [AsyncThrowingStream](swift/asyncthrowingstream.md)
- [AsyncThrowingStream.Continuation](swift/asyncthrowingstream/continuation.md)
- [AtomicLoadOrdering](synchronization/atomicloadordering.md)
- [AtomicStoreOrdering](synchronization/atomicstoreordering.md)
- [AtomicUpdateOrdering](synchronization/atomicupdateordering.md)
- [AutoreleasingUnsafeMutablePointer](swift/autoreleasingunsafemutablepointer.md)
- [Bool](swift/bool.md)
- [CVaListPointer](swift/cvalistpointer.md)
- [Capture](regexbuilder/capture.md)
- [Character](swift/character.md)
- [CharacterClass](regexbuilder/characterclass.md)
- [ChoiceOf](regexbuilder/choiceof.md)
- [ClosedRange](swift/closedrange.md)
- [ClosedRange.Index](swift/closedrange/index.md)
- [CollectionDifference](swift/collectiondifference.md)
- [CollectionDifference.Change](swift/collectiondifference/change.md)
- [CollectionDifference.Index](swift/collectiondifference/index.md)
- [CollectionOfOne](swift/collectionofone.md)
- [CollectionOfOne.Iterator](swift/collectionofone/iterator.md)
- [ContiguousArray](swift/contiguousarray.md)
- [ContinuousClock](swift/continuousclock.md)
- [ContinuousClock.Instant](swift/continuousclock/instant.md)
- [DecodingError](swift/decodingerror.md)
- [DefaultIndices](swift/defaultindices.md)
- [DefaultStringInterpolation](swift/defaultstringinterpolation.md)
- [Dictionary](swift/dictionary.md)
- [Dictionary.Index](swift/dictionary/index.md)
- [Dictionary.Iterator](swift/dictionary/iterator.md)
- [Dictionary.Keys](swift/dictionary/keys-swift.struct.md)
- [Dictionary.Values](swift/dictionary/values-swift.struct.md)
- [DiscontiguousSlice](swift/discontiguousslice.md)
- [DiscontiguousSlice.Index](swift/discontiguousslice/index.md)
- [Double](swift/double.md)
- [DropFirstSequence](swift/dropfirstsequence.md)
- [DropWhileSequence](swift/dropwhilesequence.md)
- [DropWhileSequence.Iterator](swift/dropwhilesequence/iterator.md)
- [Duration](swift/duration.md)
- [Duration.TimeFormatStyle](swift/duration/timeformatstyle.md)
- [Duration.TimeFormatStyle.Attributed](swift/duration/timeformatstyle/attributed-swift.struct.md)
- [Duration.UnitsFormatStyle](swift/duration/unitsformatstyle.md)
- [Duration.UnitsFormatStyle.Attributed](swift/duration/unitsformatstyle/attributed-swift.struct.md)
- [EmptyCollection](swift/emptycollection.md)
- [EmptyCollection.Iterator](swift/emptycollection/iterator.md)
- [EncodingError](swift/encodingerror.md)
- [EnumeratedSequence](swift/enumeratedsequence.md)
- [EnumeratedSequence.Iterator](swift/enumeratedsequence/iterator.md)
- [ExecuteDistributedTargetError.ErrorCode](distributed/executedistributedtargeterror/errorcode-swift.enum.md)
- [FlattenSequence](swift/flattensequence.md)
- [FlattenSequence.Index](swift/flattensequence/index.md)
- [FlattenSequence.Iterator](swift/flattensequence/iterator.md)
- [Float](swift/float.md)
- [Float16](swift/float16.md)
- [Float80](swift/float80.md)
- [FloatingPointClassification](swift/floatingpointclassification.md)
- [FloatingPointRoundingRule](swift/floatingpointroundingrule.md)
- [FloatingPointSign](swift/floatingpointsign.md)
- [IndexingIterator](swift/indexingiterator.md)
- [Int](swift/int.md)
- [Int128](swift/int128.md)
- [Int16](swift/int16.md)
- [Int32](swift/int32.md)
- [Int64](swift/int64.md)
- [Int8](swift/int8.md)
- [IteratorSequence](swift/iteratorsequence.md)
- [JoinedSequence](swift/joinedsequence.md)
- [JoinedSequence.Iterator](swift/joinedsequence/iterator.md)
- [KeyValuePairs](swift/keyvaluepairs.md)
- [LazyDropWhileSequence](swift/lazydropwhilesequence.md)
- [LazyDropWhileSequence.Iterator](swift/lazydropwhilesequence/iterator.md)
- [LazyFilterSequence](swift/lazyfiltersequence.md)
- [LazyFilterSequence.Iterator](swift/lazyfiltersequence/iterator.md)
- [LazyMapSequence](swift/lazymapsequence.md)
- [LazyMapSequence.Iterator](swift/lazymapsequence/iterator.md)
- [LazyPrefixWhileSequence](swift/lazyprefixwhilesequence.md)
- [LazyPrefixWhileSequence.Index](swift/lazyprefixwhilesequence/index.md)
- [LazyPrefixWhileSequence.Iterator](swift/lazyprefixwhilesequence/iterator.md)
- [LazySequence](swift/lazysequence.md)
- [Local](regexbuilder/local.md)
- [Lookahead](regexbuilder/lookahead.md)
- [Mirror](swift/mirror.md)
- [Mirror.DisplayStyle](swift/mirror/displaystyle-swift.enum.md)
- [NegativeLookahead](regexbuilder/negativelookahead.md)
- [Never](swift/never.md)
- [ObjectIdentifier](swift/objectidentifier.md)
- [ObservationRegistrar](observation/observationregistrar.md)
- [ObservationTracking.Options](observation/observationtracking/options.md)
- [OneOrMore](regexbuilder/oneormore.md)
- [OpaquePointer](swift/opaquepointer.md)
- [Optional](swift/optional.md)
- [Optionally](regexbuilder/optionally.md)
- [PartialRangeFrom](swift/partialrangefrom.md)
- [PartialRangeThrough](swift/partialrangethrough.md)
- [PartialRangeUpTo](swift/partialrangeupto.md)
- [PrefixSequence](swift/prefixsequence.md)
- [PrefixSequence.Iterator](swift/prefixsequence/iterator.md)
- [Range](swift/range.md)
- [RangeSet](swift/rangeset.md)
- [RangeSet.Ranges](swift/rangeset/ranges-swift.struct.md)
- [Repeat](regexbuilder/repeat.md)
- [Repeated](swift/repeated.md)
- [Result](swift/result.md)
- [ReversedCollection](swift/reversedcollection.md)
- [ReversedCollection.Index](swift/reversedcollection/index.md)
- [ReversedCollection.Iterator](swift/reversedcollection/iterator.md)
- [SIMD16](swift/simd16.md)
- [SIMD2](swift/simd2.md)
- [SIMD3](swift/simd3.md)
- [SIMD32](swift/simd32.md)
- [SIMD4](swift/simd4.md)
- [SIMD64](swift/simd64.md)
- [SIMD8](swift/simd8.md)
- [Set](swift/set.md)
- [Set.Index](swift/set/index.md)
- [Set.Iterator](swift/set/iterator.md)
- [Slice](swift/slice.md)
- [StaticBigInt](swift/staticbigint.md)
- [StaticString](swift/staticstring.md)
- [StrideThrough](swift/stridethrough.md)
- [StrideThroughIterator](swift/stridethroughiterator.md)
- [StrideTo](swift/strideto.md)
- [StrideToIterator](swift/stridetoiterator.md)
- [String](swift/string.md)
- [String.Encoding](swift/string/encoding.md)
- [String.Index](swift/string/index.md)
- [String.IntentInputOptions.CapitalizationType](swift/string/intentinputoptions/capitalizationtype-swift.enum.md)
- [String.IntentInputOptions.KeyboardType](swift/string/intentinputoptions/keyboardtype-swift.enum.md)
- [String.LocalizationValue](swift/string/localizationvalue.md)
- [String.UTF16View](swift/string/utf16view.md)
- [String.UTF8View](swift/string/utf8view.md)
- [String.UnicodeScalarView](swift/string/unicodescalarview.md)
- [Substring](swift/substring.md)
- [Substring.UTF16View](swift/substring/utf16view.md)
- [Substring.UTF8View](swift/substring/utf8view.md)
- [Substring.UnicodeScalarView](swift/substring/unicodescalarview.md)
- [SuspendingClock](swift/suspendingclock.md)
- [SuspendingClock.Instant](swift/suspendingclock/instant.md)
- [Task](swift/task.md)
- [TaskGroup](swift/taskgroup.md)
- [TaskPriority](swift/taskpriority.md)
- [ThrowingTaskGroup](swift/throwingtaskgroup.md)
- [TryCapture](regexbuilder/trycapture.md)
- [UInt](swift/uint.md)
- [UInt128](swift/uint128.md)
- [UInt128.Words](swift/uint128/words-swift.struct.md)
- [UInt16](swift/uint16.md)
- [UInt32](swift/uint32.md)
- [UInt64](swift/uint64.md)
- [UInt8](swift/uint8.md)
- [Unicode.ASCII](swift/unicode/ascii.md)
- [Unicode.ASCII.Parser](swift/unicode/ascii/parser.md)
- [Unicode.GeneralCategory](swift/unicode/generalcategory.md)
- [Unicode.NumericType](swift/unicode/numerictype.md)
- [Unicode.Scalar](swift/unicode/scalar.md)
- [Unicode.Scalar.UTF16View](swift/unicode/scalar/utf16view.md)
- [Unicode.Scalar.UTF8View](swift/unicode/scalar/utf8view.md)
- [Unicode.UTF16](swift/unicode/utf16.md)
- [Unicode.UTF16.ForwardParser](swift/unicode/utf16/forwardparser.md)
- [Unicode.UTF16.ReverseParser](swift/unicode/utf16/reverseparser.md)
- [Unicode.UTF32](swift/unicode/utf32.md)
- [Unicode.UTF32.Parser](swift/unicode/utf32/parser.md)
- [Unicode.UTF8](swift/unicode/utf8.md)
- [Unicode.UTF8.ForwardParser](swift/unicode/utf8/forwardparser.md)
- [Unicode.UTF8.ReverseParser](swift/unicode/utf8/reverseparser.md)
- [Unicode.UTF8.ValidationError](swift/unicode/utf8/validationerror.md)
- [Unicode.UTF8.ValidationError.Kind](swift/unicode/utf8/validationerror/kind-swift.struct.md)
- [Unmanaged](swift/unmanaged.md)
- [UnownedJob](swift/unownedjob.md)
- [UnownedTaskExecutor](swift/unownedtaskexecutor.md)
- [UnsafeBufferPointer](swift/unsafebufferpointer.md)
- [UnsafeBufferPointer.Iterator](swift/unsafebufferpointer/iterator.md)
- [UnsafeCurrentTask](swift/unsafecurrenttask.md)
- [UnsafeMutableBufferPointer](swift/unsafemutablebufferpointer.md)
- [UnsafeMutablePointer](swift/unsafemutablepointer.md)
- [UnsafeMutableRawBufferPointer](swift/unsafemutablerawbufferpointer.md)
- [UnsafeMutableRawPointer](swift/unsafemutablerawpointer.md)
- [UnsafePointer](swift/unsafepointer.md)
- [UnsafeRawBufferPointer](swift/unsaferawbufferpointer.md)
- [UnsafeRawBufferPointer.Iterator](swift/unsaferawbufferpointer/iterator.md)
- [UnsafeRawPointer](swift/unsaferawpointer.md)
- [WordPair](synchronization/wordpair.md)
- [ZeroOrMore](regexbuilder/zeroormore.md)
- [Zip2Sequence](swift/zip2sequence.md)
- [Zip2Sequence.Iterator](swift/zip2sequence/iterator.md)

## See Also

### Copying

- [Copyable](swift/copyable.md)
- [BitwiseCopyable](swift/bitwisecopyable.md)
