[i6] Manipulations de variables en Inform 6

Pour discuter des langages que nous utilisons pour réaliser nos jeux : problèmes, solutions, suggestions...

Modérateurs: Stormi, Otto Grimwald

[i6] Manipulations de variables en Inform 6

Messagepar auraes le Sam Juin 30, 2018 7:35 am

Le rédacteur de l'article Manipulations de variables en Inform 6, sur fiction-interactive.fr, semble avoir une mauvaise compréhension de ce que sont des variables globales et locales.
Une variable dans un objet en I6 est bien une variable globale et non locale :
Code: Tout sélectionner
Object obj
   with a 1; !ou "private a 1" pour en restreindre l'accès au seul objet

Global b = 2;

[ rtn;
   obj.a = -1;
   b = -2;
];

[ main c;
   c = 3;
   print obj.a, " ", b, " ", c;
   new_line;
   rtn();
   print obj.a, " ", b, " ", c;
   new_line;
];
a est une variable globale (appelée propriété dans un objet I6), modifiable, rémanente et accessible de n'importe quelle fonction. Pour en restreindre l'accès au seul objet qui l'a déclaré, il faut la déclarer private.
b est une variable globale modifiable, rémanente et accessible de n'importe quelle fonction.
c est une variable locale modifiable, non rémanente et accessible seulement à l’intérieur de la fonction main.

DM4 :
Properties are just like global variables: any value you can store in a variable
can be stored in a property.
A ‘‘global variable’’ is permanent and its value can be used or altered from every routine.
A private property is so well hidden that nobody else
can even know whether or not it exists.

Du coup, l'article est faux et prête à confusion.
Avatar de l’utilisateur
auraes
Grand Ancien
 
Messages: 348
Inscription: Ven Avr 11, 2008 9:15 pm

Retourner vers Questions techniques et aide pour votre code

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron