Has anyone else seen this?
Sometime I will temporaialy bypass a Func by inserting a Return
and most of the time Swift still executes the statement RIGHT after the return
private func test() {
return
print("this is test func")
.... other stuff
}
the print is still executed, but "other stuff" is not
It's not a bug, exactly. Because Swift is generally white-space-agnostic, the print call — which returns a Void result — is an expression that's returned by the return. Since func test implicitly returns Void, and the print expression result is Void, there's no type mismatch and the return happens properly, with the printed output as a side-effect.
The line after the print starts a new statement, so it isn't executed due to the return.
The safest way to return early is to use a terminating ; for this scenario:
private func test() {
return;
print("this is test func") // <-- will not be executed
.... other stuff
}