en fait TrickOrTreat te renvoie une closure qui contient un print(« no treats ») ou un print (« have a treat »)
cette méthode est execute 2 fois pour assigner trickFunction et treatFunction. A la fin on a donc ces deux val qui sont deux closures qui print un truc.
dans le cas de val treatFunction = … on passe false qui print immediatement « 5 quarters ». mais on a bien
treatFunction = { println(have a treat) }
donc ensuite on execute ces deux val, donc on exécute les closures et ça donne les 3 prints que tu vois
La clé c’est que trickOrTreat fait un print au milieu dans un cas précis. C’est pour ça que 5 quarters n’est affiché qu’une fois et au début
Utiliser les types de fonction et les expressions
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Doucement mais Surement