ExpressibleByStringLiteral URL
The ExpressibleByStringLiteral protocol is a powerful feature in Swift that allows us to create custom types directly from string literals. Essentially, it enables us to initialize instances of our custom types using string values. This can be incredibly useful for scenarios where we want to represent certain data types more intuitively or avoid force unwrapping when dealing with known valid strings.
Writing the extension ExpressibleByStringLiteral
/// Lets URLs be expressed conveniently with literal strings:
/// # Example:
/// let baseUrl: URL = "https://wesleydegroot.nl/blog"
extension URL: ExpressibleByStringLiteral {
public init(stringLiteral string: StaticString) {
guard let url = URL(string: "\(string)") else {
preconditionFailure("Invalid literal URL string: \(string)")
}
self = url
}
}
Use Case: ExpressibleByStringLiteral for URLs
let baseUrl: URL = "https://wesleydegroot.nl/blog"
print(baseUrl.absoluteString) // Output: "https://wesleydegroot.nl/blog"
Conclusion
In summary, ExpressibleByStringLiteral empowers us to make our custom types more expressive and convenient to work with. By conforming to this protocol, we can simplify our code and enhance readability.
Remember to explore other use cases and experiment with different types to harness the full potential of ExpressibleByStringLiteral in your Swift projects!
Resources:
Read more
- Creating a dynamic user interface for extensions in Aurora Editor • 10 minutes reading time.
- Expressible Literals • 3 minutes reading time.
- Swift Package: XCUITestHelper • 2 minutes reading time.
Share
Share Bluesky Mastodon Twitter LinkedIn Facebook