[Squeak-fr] Question sur les Integer
Damien Cassou
damien.cassou at laposte.net
Dim 5 Sep 14:10:57 CEST 2004
Hilaire Fernandes a écrit :
> Salut,
>
> En regardant le code de la methode factorial de la class Integer, je ne
> comprend pas pourquoi les calculs sur la valeur entiere se font sur
> self.
>
> Est-ce que self n' est pas sens'ee etre une r'ef'erence sur un objet
> Integer (et non pas sur la valeur elle m^eme) ? C'est du moins de cette
> facon que les choses seraient vues en C++, je n'arrive pas a faire la
> transposition avec Smalltalk.
>
> Merci de m'eclairer.
>
> Hilaire
>
> factorial
> self = 0
> ifTrue: [^ 1].
> self > 0
> ifTrue: [^ self * (self - 1) factorial].
> self error: 'Not valid for negative integers'
>
>
Salut,
pour commencer, il faut que tu saches que tout est objet en Smalltalk.
Self représente une instance de la classe Integer. Les opérateurs de
comparaisons = > <... sont tous définis sur la classe Integer. Il est
impossible d'écrire le code en fonction de la valeur de l'objet car
cette valeur devrait être un entier et comme tout est objet, ça serait
un objet Integer, donc on tournerait en rond.
Je ne sais pas si je suis bien clair...
Damien
Plus d'informations sur la liste de diffusion Squeak-fr