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
whileTrue
che non riceve alcun blocco e valutaself
?