Swift consente il prefisso facoltativo di chiamate di metodo e riferimenti di proprietà all'istanza dell'oggetto corrente tramite self
. La rimozione di questi prefissi può declutterare il codice ma, a seconda della lunghezza del metodo e del numero di parametri e variabili locali, può anche rendere ambiguo lo scope variabile.
Forse la risposta è il refactoring in classi e metodi più piccoli, ma a volte non è sempre pratico. Esempi comuni sono cose come UIViewController
sottoclassi e custom viewDidLoad()
implementazioni o complessi gestori di azioni per UIGestureRecognizer
sottoclassi. Ci ho pensato un po 'da quando mi sono immerso nello sviluppo di un'applicazione iOS in Swift ma sono ancora sulla recinzione. La mia risposta ideale dovrebbe toccare:
-
Se non si fa riferimento a
self
ha degli svantaggi pratici. -
Se mescolare riferimenti impliciti ed espliciti a
self
è peggio che si attengono a uno o l'altro (mi sto orientando verso si ). -
Aspetti stilistici generali con particolare attenzione alla leggibilità.
-
Stili di denominazione delle variabili di istanza rispetto agli stili di denominazione delle variabili locali per mitigare l'ambiguità.
-
Riferimenti a problemi simili in altre lingue.