[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