uilt-in len**. Donc je fais un len(s) et ça va me retourner que j'ai effectivement dix éléments dans ma sé... je peux faire : est-ce que 'egg' in s et ça va me retourner vrai, effectivement, la chaîne de caractères '... qui est le test de non appartenance, et qui va me retourner faux, puisque, effectivement, 'egg' est dans l... est : n'est-il pas dans la chaîne de caractères ? retourne faux. Donc ce test d'appartenance, vous remarqu
peau ou caret), c'est à dire:
* Comment peut-on retourner une valeur d'un block ou d'une méthode?
* Quelles sont les valeurs de retour par défaut?
Il y a 4 cas à considérer:
* Une m... ilise pas le chapeau pour faire un return.
===== Retourner une valeur depuis une méthode =====
<code smalltalk>
Number>>squared
"Retourne le receveur multiplié par lui même."
^ self *
nt l'exécution de l' expression ci-dessus ne nous retourne que la valeur 2. Alors pourquoi est-ce qu'on ob... e dans la classe "Set", on voit que cette méthode retourne son paramètre.
Dans l'expression "Set new add... n envoie le message "add: 2"
* La méthode add:2 retourne son paramètre, c'est-à-dire 2.
Avec l'express... ussi bien être vide, et ne faire rien du tout que retourner son receveur.
Cette méthode, a priori, ne fai
n'avons réaffecté L, et à aucun moment nous avons retournéune valeur. Pourtant, la liste a été modifiée. *... ici, on n'a aucune ambiguïté, on voit bien que le retour de *sort* c'est *None*, donc cette méthode nous retourne juste l'objet vide, et la liste est modifiée en ... ers cet objet liste, il faut passer une valeur de retour, il faut que la fonction retourne quelque chose.
liste, mais la différence, c'est que ce qui sera retourné sera un **itérateur** et non pas une liste, un ... va calculer à la volée le carré de chaque élément retourné par *range* de 1000. Comme *range* est égalemen... bjet qui ne crée pas de liste temporaire mais qui retourne, à chaque fois qu'on l'appelle, l'entier suivan... sque vous définissez une fonction, votre fonction retourne forcément une valeur. Si vous ne mettez pas d'i
today à l'objet Date qui est une classe, et ça me retourne la date du jour.
Voici trois autres exemples:... rgument une URL, l'url d'un fichier png, et ça me retourne le fichier png téléchargé.
<code smalltalk>
Zn... thValue:''** dans la classe **''Counter''**, pour retourner un nouveau compteur avec en valeur initiale la... e smalltalk>
Counter withValue: 10
</code>
nous retourne un nouvel objet compteur qui commencerait à la
''%%__len__()%%''. Cette méthode `__len__()` doit retourner un entier qui va correspondre à la taille de l... lequel je veux faire le test. Cette méthode doit retourner un booléen qui vaut Vrai si mot est dans l'ins... méthode qui s'appelle ''%%__str__()%%'' qui doit retourner une chaîne de caractères.
Nous venons de dét... ne instance ne dépend par défaut que de la valeur retournée par la fonction built-in ''id()'' appliquée su
keries'' liste les boulangeries, ''bakeries/123'' retourne une boulangerie particulière, ''bakeries/123/pastries'' retourne les viennoiseries de la boulangerie 123. Par contre, ''bakeries/icecream'' ne retourne rien de valide dans notre cas.
++++
**Si vous voulez que votre API retourne la liste des viennoiseries de votre boulangerie
e commande au résultat d’une autre. Selon le code retour d’une première expression, une autre sera ou ne s... ue lorsque cmd1 s'est terminée correctement (code retour 0) |
^ %%cmd1 || cmd2%% | cmd2 n'est exécutée que lorsque cmd1 s'est terminée en erreur ( code retour différent de 0) |
===== Structure if =====
La c... étée par bash, il est nécessaire de respecter les retours à la ligne: le mot clé "if" suivi du test de con
savoir que j'ai fait une erreur. age de 'bob' me retourne 38 ; je réaffiche mon dictionnaire age ; et com... ? J'utilise la *fonction built-in len*, qui va me retourner 2. Je peux également faire du test d'appartena... céder avec **la méthode keys()**. Et keys() va me retourner un objet qui contient les clés. Ensuite, je peux accéder aux valeurs avec values() qui va me retourner un objet qui contient les valeurs. Et je peux
en argument de la **fonction built-in bool** qui retournera vrai ou faux. Vous avez une expression, cette... *%%objet.__bool__()%%* et cette méthode *bool* va retourner vrai ou faux, qui sera pris en compte par le t... va appeler la méthode *len*. Si la méthode *len* retourne 0, ce sera faux ; si la méthode *len* retourne quelque chose d'autre, ce sera vrai.
L'intuition derriè
]
[1, 2, 3]
</code>
Cette compréhension de liste retourne la liste de tous les éléments de cet itérable (... squ'il n'y a plus d'élément, la méthode *next* va retourner une exception qui s'appelle **StopIteration**.... n appelle une **méthode spéciale**. Cette méthode retourne un nouvel objet qui s'appelle un **itérateur**.... t qui a également une méthode ''__iter__ ()'' qui retourne l'itérateur lui-même, et une méthode `__next__`
a locale'
print(a)
# une fois que la fonction retourne, la variable locale
# et sa valeur n'existent... uf que les variables locales, lorsque la fonction retourne, sont détruites: elles n'ont aucun impact sur l... n add_10() prend en argument la
# une variable et retourne sa valeur augmentée de 10
# la valeur retournée est explicitement affectée
# à la variable globale *a*
r. Et enfin, on a le chapeau qui est utilisé pour retourner une valeur et quitter la méthode. Alors concernant le retour, par défaut, en Pharo, toutes les méthodes retournent self donc l'objet en cours. Donc, le code qui est a... de private, etc. Par défaut, toutes les méthodes retournent le receveur, c'est-à-dire self et on peut uti
>
Si on exécute cette expression, on voit qu'elle retourne bien une erreur.
Si on encapsule cette express... en, donc je n'ai pas d'erreur.
Le block nous est retourné, parce qu'en fait la définition d'un block n'ex... contient une erreur, évidemment l'erreur va être retournée au moment de l'évaluation du bloc.
C'est le c... age value au bloc et on a bien une erreur qui est retournée.
Les blocs en fait peuvent aussi avoir des ar