[swift-evolution] Strings in Swift 4
Martin Waitz
tali at admingilde.org
Thu Jan 26 09:06:27 CST 2017
Am 2017-01-26 12:49, schrieb Jonathan Hull via swift-evolution:
> I had a realization a few weeks ago that regexes with capture groups
> actually correspond to a type, where successive capture groups form a
> tuple and recursive ones form arrays of the capture groups they
> recurse (and ‘?’ conveniently forms an optional). For example the
> type for the regex above would be (Int,String). Those types could be
> pretty hairy for complex regexes though.
>
> let (id,name) = /(\d+): (\w+)/
Well, the regex would have a type of its own, but it would probably have
a
generic Result parameter, which would include your `(Int,String)`.
You only get your (id,name) pair when match some input against that
regex.
E.g. something like:
let r: Regex<(Int, String)> = /(\d+): (\w+)/
switch input {
case r(let id, let name): print("\(id): \(name)")
}
--
Martin
More information about the swift-evolution
mailing list