Is there is a way to have guard automatically return without needing to actually write it out every single time, e.g:
guard let url = self.webView.url else { return }
guard let componentDict = URLComponents(string: url.absoluteString)?.dict else { return }
guard let id = componentDict["v"] else { return }
guard let idUrl = URL(string: baseUrl + id) else { return }
In the case where I actually need to do something in addition to return, I would include the else { return } bit with my extra handling.
Its not a huge bother, but it would be a nice thing to have.
You could write that code using if let:
if let url = self.webView.url,
let componentDict = URLComponents(string: url.absoluteString)?.dict,
let id = componentDict["v"],
idUrl = URL(string: baseUrl + id) {
// do something with idURL
} else {
return // if needed
}
But in short, no, you can't shorten an individual guard ... else { return }.
guard statement is typed with else must be, there is no shortcut for this but you can use if..let to avoid else statement.
Or combine this related variables statement with single guard statement
guard let url = webView.url,
let componentDict = URLComponents(string: url.absoluteString)?.dict,
let id = componentDict["v"],
let idUrl = URL(string: baseUrl + id)
else { return }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With