Further question 1: in guard let self = self else { return }, first self and second self are same, why it can be compiled successfully? Because normal let self = self will be compiled with errors.
Further question 2: Even I found guard let self else { return } in some projects, why it can be compiled successfully?