Swift version: 5.10
Swift’s ExpressibleByStringLiteral
protocol lets us create any type directly from a string – as long as Swift understands what type you mean, you can create whatever you want.
For example, if you regularly hard-code URLs and are tired of force unwrapping them when you know they are definitely correct, you can make URL
conform to ExpressibleByStringLiteral
so that URLs can be created directly from strings:
extension URL: ExpressibleByStringLiteral {
public init(stringLiteral value: String) {
self = URL(string: value)!
}
}
With that extension in place you can now write code like this:
let url: URL = "https://www.hackingwithswift.com"
print(url.absoluteString)
Notice that I’ve clearly marked url
as being of type URL
so that Swift doesn’t think it’s a regular string.
SPONSORED Take the pain out of configuring and testing your paywalls. RevenueCat's Paywalls allow you to remotely configure and A/B test your entire paywall UI without any code changes or app updates.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.