Swift version: 5.6
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 AppSweep by Guardsquare helps developers automate the mobile app security testing process with fast, free scans. By using AppSweep’s actionable recommendations, developers can improve the security posture of their apps in accordance with security standards like OWASP.
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.