« Lisaac/Slot » : différence entre les versions

Contenu supprimé Contenu ajouté
m ortho
Ligne 67 :
*avec := ce qui provoque l'exécution immédiate (sans appel). Peut être utile dans certain cas
*avec <- qui attend que l'on appelle le slot pour l'exécuter. C'est cela que l'on va utiliser dans la plupart des cas.
(par contre pour les slots de données on utilise plutotplutôt :=)
 
Enfin pour renvoyer une valeur il suffit de placer cette valeur en dernière instruction et de ne pas la terminer par un point-virgule. Si la dernière expression d'un bloc est terminé par un ";" cela correspond à une procédure. Le type de la valeur de retour doit bien sur correspondre au type du slot. En fait les expressions en Lisaac sont déclarées de la même manière que les suites d'instructions : "(2+4<=2)" c'est pour cela que les valeurs de retours ont cette forme.
Ligne 87 :
En particulier, un slot de code peut devenir un slot de données. Voir par exemple [[Lisaac/slot avancé|Transformer une méthode en attribut (ou l'inverse)]] dans le deuxième chapitre. Cette particularité n'est pas là seulement pour faire beau, comme nous le verrons dans tout le document c'est un des concept centraux de Lisaac.
 
Résumons : dans l'esprit de Lisaac vous affectez une liste d'instructions entre parenthèses à un slot. Nous avons utilisé ici la section Public qui permet à n'importe quel prototype d'appellerappeler les slots.
 
==== Q : Je ne pensais pas a avoir à demander cela mais pour l'appel il y a aussi des particularités ? ====
Pour appellerappeler un slot, ou envoyer un message suivant la façon de voir les choses, il suffit classiquement d'intercaler un point entre le prototype et le slot. ExampleExemple :
x:=4;
x.sqrt.print;
 
La particularité étant que l'on peut appellerappeler un slot sans argument sans ajouter des parenthèse "()" inutiles :
Ce qui permet notamentnotamment de remplacer un slot de donnée par un slot de routine, ou le contraire, sans changer l'interface du prototype. Ainsi le principe d'encapsulation objet est respecté au maximum.
 
TODO : dans quel cas peut-on supprimer les parenthèses si il y a des paramètres