Voglio sapere come funziona whileTrue: . Ho cercato l'implementazione in BlockClosure :
whileTrue: aBlock
^ [self value] whileTrue: [aBlock value]
E un'altra implementazione senza parametro:
whileTrue
^ [self value] whileTrue: []
Ma non so come funzioni, questo è un metodo ricorsivo, ma questo mi ha portato a porre diverse domande:
- Come si conclude questa chiamata ricorsiva?
- Se
[self value]restituisce un oggettoBoolean, perchéwhileTrue:non è implementato nel tipoBoolean? - Perché esiste un'altra implementazione denominata
whileTrueche non riceve alcun blocco e valutaself?